MCP server for Futarchy-routes backend, providing tools to interact with Futarchy DAOs, proposals, and prediction markets on Solana
Tools have basic descriptions and input schemas, but quality is inconsistent. Descriptions are generic and lack actionable context (e.g., 'Get all DAOs' vs 'Retrieve all DAOs in the Futarchy system with their current voting parameters and treasury balances'). Parameter descriptions are minimal, most are single-phrase identifiers without format guidance, constraints, or dependency hints. No output schemas documented. Error handling is absent from tool definitions. Tool names follow verb_noun convention but lack specificity for market operations (buyInPassMarket vs buyPassMarketTokens). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. Composition is reasonable, tools are single-purpose, but chaining is not optimized (e.g., createProposal requires daoId but getDao returns a DAO object; unclear if the returned ID matches the parameter type).
Buy tokens in the fail market for a proposal
Buy tokens in the pass market for a proposal
Create a new proposal for a DAO
Get a specific DAO by ID
Get all DAOs from the Futarchy system
Get a specific proposal by ID
Get sentiment analysis for a specific proposal based on Discord and Twitter data
Descriptions lack actionable context and LLM-optimized guidance. 'Get all DAOs from the Futarchy system' (34 chars) is below the 50-char minimum for clarity. No explanation of when to call this vs getDao, what fields are returned, or how to use results downstream.
Parameter descriptions are minimal identifiers without format, range, or constraint guidance. 'The ID of the DAO to retrieve' does not specify format (Solana PublicKey?), length, or validation rules. LLMs cannot infer valid input from this.
No output schemas documented. Tools return data but LLMs cannot plan downstream calls without knowing response structure. E.g., does getDao return {id, name, treasury, ...}? Does getDaos return paginated results or a flat array?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
Get all proposals for a specific DAO
Sell tokens in the fail market for a proposal
Sell tokens in the pass market for a proposal
Market trading tools (buyInPassMarket, sellInPassMarket, buyInFailMarket, sellInFailMarket) lack error guidance and confirmation patterns. These are destructive operations (WRITE risk) with financial consequences, but no dry-run, confirmation, or recovery guidance is documented.
Tool names for market operations are ambiguous. 'buyInPassMarket' vs 'buyPassMarketTokens', unclear if 'amount' is token count, USD value, or lamports. Naming should clarify unit and operation (e.g., buy_pass_market_tokens_by_count).