Model Context Protocol server for Tally blockchain governance API - Access DAOs, proposals, and voting data across 15+ networks
Server has 21 tools with consistent naming (verb_noun pattern) and reasonable descriptions (avg ~100 chars). Input schemas are present and use Zod validation with proper types. However, output schemas are not documented in the tool definitions, LLMs cannot see what fields to expect from responses. Parameter descriptions are adequate but lack format constraints (e.g., Ethereum address format '0x...' is mentioned in some but not all address params). Error handling is minimal, no recovery guidance or actionable error messages visible in tool code. Security is sound (no secrets in params, API key injected server-side). Composition is good: tools are single-responsibility and chainable (e.g., list_organizations → get_organization). Overall: solid foundation, but missing output documentation and error guidance that would push this to 70+.
Execute a custom GraphQL query against the Tally API
Get delegate leaderboard for an organization
Get active proposals across organizations
Get participants (delegates) of a specific DAO
Get voting statistics for a DAO
Get delegate statement for a user in a specific DAO
Get delegates for a specific organization
Output schemas not documented. Tool definitions lack return type documentation, LLMs cannot see what fields responses contain, forcing them to guess field names for downstream tool calls.
Address parameter format inconsistently documented. Some tools mention '0x...' format for Ethereum addresses (get_user_profile, get_delegate_statement), others do not. Standardize format constraints across all address parameters.
Error handling lacks recovery guidance. Tool implementations do not document what errors can occur or how LLMs should respond (retry, ask user, fail gracefully). No actionable error messages visible.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Get delegation status for a user across DAOs
Get detailed organization information by ID or slug
Get organizations that have active proposals
Get detailed proposal information
Get a summary of a proposal with key details
Get timeline of events for a proposal
Get voters for a specific proposal
Get recent votes across the network
Get information about the MCP Tally API server
Get user profile with DAO participations and delegate information
Get voting history for a user
Get voter profile with voting history and participation
List organizations with pagination, filtering, and sorting
List proposals for a specific organization with API-side filtering and sorting
custom_query tool is overly generic. Exposing raw GraphQL queries reduces safety and makes LLM reasoning harder. Consider wrapping common queries in dedicated tools or documenting allowed query patterns.
Some tools inferred from manual-test.js rather than explicit tool registration. get_voter_profile, get_delegation_status, get_vote_history appear in test file but not in src/tools/ directory, unclear if they are properly registered.