UNPKG

mcp-tally-api

Version:

Model Context Protocol server for Tally blockchain governance API - Access DAOs, proposals, and voting data across 15+ networks

414 lines (293 loc) 12.2 kB
# MCP Tally API A Model Context Protocol (MCP) server that provides LLMs with access to Tally's blockchain governance API for querying DAOs, proposals, and voting data across multiple networks. ## 🚀 Quick Start Get started with MCP Tally API in Cursor or Claude Desktop in 2 minutes: ### 1. Get a Tally API Key Sign up at [Tally.xyz](https://tally.xyz) to get your free API key. ### 2. Install the MCP Server ```bash npm install -g mcp-tally-api ``` ### 3. Configure Cursor/Claude Desktop Add to your MCP configuration file: **Cursor:** Edit `.cursor/mcp.json` in your project: ```json { "servers": { "tally": { "command": "mcp-tally-api", "env": { "TALLY_API_KEY": "your_api_key_here" } } } } ``` **Claude Desktop:** Edit `claude_desktop_config.json`: ```json { "mcpServers": { "tally": { "command": "mcp-tally-api", "env": { "TALLY_API_KEY": "your_api_key_here" } } } } ``` ### 4. Start Using Restart Cursor/Claude Desktop and start asking about DAOs: > "What are the most popular DAOs with active proposals?" > "Show me details about Uniswap governance" > "Who are the top delegates in Arbitrum DAO?" 🎯 **You now have access to 14 tools and 7 resources for comprehensive DAO governance analysis!** --- ## Features ### 🚀 **Features** - **🔧 Tools**: 14 comprehensive tools for querying organizations, proposals, users, and delegates - **📚 Resources**: 7 browsable resources including Popular DAOs mapping and governance overviews - **🎯 Prompts**: 6 governance-focused prompt templates for structured DAO analysis - **⚡ Real-time**: Live data from Tally's GraphQL API with proper error handling - **🔍 Filtering**: Advanced filtering, sorting, and pagination across all endpoints - **🌐 Multi-chain**: Support for 15+ blockchain networks including Ethereum, Polygon, Arbitrum - **📊 Rich Data**: Comprehensive governance metrics, voting patterns, and delegate information ### 🏛️ **Organization Management** - **list_organizations**: Browse DAOs with pagination, filtering by chain/logo, and sorting by popularity - **get_organization**: Get detailed DAO information including member counts and proposal statistics - **get_organizations_with_active_proposals**: Find DAOs with ongoing governance activity ### 📊 **Proposal Operations** - **list_proposals**: View proposals for specific DAOs with filtering and sorting options - **get_proposal**: Get detailed proposal information including voting statistics and execution details - **get_active_proposals**: Find active proposals across all DAOs or filtered by criteria ### 👥 **User & Delegation** - **get_user_daos**: Discover which DAOs a user participates in - **get_dao_participants**: List members of a specific DAO with sorting options - **get_user_details**: Get comprehensive user information and governance activity - **get_delegates**: Find delegates in a DAO with delegation statistics ### 📚 **Resources** - **Popular DAOs**: Stable mapping of 20 major DAOs to their organization IDs across 5 networks - **Server Info**: Runtime information and health status - **Organization Overview**: Human-readable markdown overviews of DAOs via `tally://org/{organizationId}` - **Proposal Overview**: Detailed proposal information via `tally://org/{organizationId}/proposal/{proposalId}` - **User Profile Overview**: Governance profiles via `tally://user/{address}` - **Trending Proposals**: Active governance activity via `tally://trending/proposals` ### 🔗 **Resource Templates** Resource templates provide browsable, AI-friendly access to governance data: #### **Organization Overview** (`tally://org/{organizationId}`) Get human-readable markdown overviews of any DAO: ``` URI: tally://org/2206072050458560434 Content-Type: text/markdown # Uniswap **Description:** Uniswap is a decentralized protocol for automated liquidity provision on Ethereum. ## 📊 Key Metrics - **Members:** 47,543 - **Total Proposals:** 81 - **Active Proposals:** 0 - **Chain:** eip155:1 ## 🏛️ Governance Status **Current Activity:** 🔵 No active proposals ## 🔗 Links [Website](https://uniswap.org) [Twitter](https://twitter.com/Uniswap) [GitHub](https://github.com/Uniswap) --- *Data from Tally API Organization ID: 2206072050458560434 Slug: uniswap* ``` #### **Proposal Overview** (`tally://org/{organizationId}/proposal/{proposalId}`) Get detailed markdown overviews of specific proposals: ``` URI: tally://org/2206072050458560434/proposal/2589356045239322076 Content-Type: text/markdown # ❌ Scaling V4 and Supporting Unichain **Organization:** Uniswap ## 📋 Proposal Details - **Status:** Defeated - **Proposal ID:** 2589356045239322076 - **Proposer:** `0x9B68c14e936104e9a7a24c712BEecdc220002984` - **Start Time:** May 12, 2025 at 09:18 PM - **End Time:** May 18, 2025 at 01:20 PM ## 📄 Description # Scaling V4 and Supporting Unichain PGOV is submitting the proposal on GFX Labs' behalf... ## 🗳️ Voting Results - **For:** 24.7M votes - **Against:** 3.0K votes - **Abstain:** 5.3M votes ## ⚙️ Execution **Status:** Not executed --- *Data from Tally API Organization ID: 2206072050458560434 Proposal ID: 2589356045239322076* ``` #### **User Profile Overview** (`tally://user/{address}`) Get governance profiles for any Ethereum address: ``` URI: tally://user/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 Content-Type: text/markdown # 👤 Anonymous User ## 📋 Profile Details - **Address:** `0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045` ## 🏛️ DAO Participation *No DAO participation found for this address.* --- *Data from Tally API Address: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045* ``` #### **Trending Proposals** (`tally://trending/proposals`) Get an overview of active governance across all DAOs: ``` URI: tally://trending/proposals Content-Type: text/markdown # 🔥 Trending Governance Activity **0 Active Proposal(s) Across All DAOs** *No active proposals found at this time.* Check back later for ongoing governance activity! --- *Data from Tally API Updated: 5/28/2025, 12:24:27 AM* ``` **Benefits:** - **Browsable**: AI can explore governance data like reading documents - **Cacheable**: Popular resources can be cached for performance - **Linkable**: Easy to reference specific governance data in conversations - **Readable**: Returns human-friendly markdown format - **Error-Safe**: Graceful error handling for invalid parameters - **Real-time**: Always shows current data from the live Tally API ### 🎯 **Prompt Templates** Governance-focused prompt templates that guide LLMs through comprehensive DAO analysis: #### **DAO Analysis** (`analyze-dao-governance`) Complete governance health assessment for any DAO: ``` Parameters: - organizationId: The DAO to analyze - includeComparison: Whether to compare with similar DAOs (optional) Guides LLM through: - Organization overview and metrics - Active governance activity analysis - Delegate distribution and voting power - Recent proposal patterns and success rates - Optional peer comparison and benchmarking ``` #### **DAO Comparison** (`compare-dao-governance`) Side-by-side governance comparison between two DAOs: ``` Parameters: - dao1: First DAO organization ID or slug - dao2: Second DAO organization ID or slug - aspect: Focus area (overall, delegates, proposals, activity) Provides structured comparison framework for: - Quantitative metrics and participation rates - Governance quality and community health - Structural differences and best practices - Actionable recommendations for improvement ``` #### **Delegate Research** (`analyze-delegate-profile`) Comprehensive delegate profiling and analysis: ``` Parameters: - address: Ethereum address of the delegate - organizationId: Specific DAO to focus on (optional) Research framework covering: - Cross-DAO governance experience and history - Current voting power and delegation status - Participation quality and voting consistency - Community standing and delegate statements - Specialization areas and expertise ``` #### **Trend Discovery** (`discover-governance-trends`) Ecosystem-wide governance trend analysis: ``` Parameters: - timeframe: Analysis focus (current, recent, emerging) - category: DAO category filter (all, defi, infrastructure, social) Trend analysis covering: - Governance innovation and new mechanisms - Hot topics and common proposal themes - Participation patterns and delegate activity - Cross-DAO movements and coordination ``` #### **DAO Recommendations** (`find-dao-to-join`) Personalized DAO discovery and recommendations: ``` Parameters: - interests: Focus areas (comma-separated, e.g., "DeFi,gaming") - participationLevel: Desired engagement (observer, voter, delegate, contributor) - experience: Governance experience (beginner, intermediate, expert) Matching framework considering: - Interest alignment with DAO focus areas - Participation opportunities and entry barriers - Experience-appropriate complexity levels - Community health and governance quality ``` #### **Proposal Analysis** (`analyze-proposal`) In-depth proposal analysis and voting guidance: ``` Parameters: - organizationId: DAO where the proposal exists - proposalId: Specific proposal to analyze Analysis framework covering: - Proposal details and strategic implications - Current voting dynamics and participation - Key delegate positions and influence - Risk assessment and implementation challenges - Voting recommendations and considerations ``` **Benefits:** - **Structured Guidance**: Step-by-step instructions for thorough analysis - **Tool Integration**: Optimized use of all Tally API tools and resources - **Flexible Focus**: Customizable analysis depth and comparison scope - **Actionable Insights**: Designed to produce practical recommendations ### ⚡ **Advanced Query Capabilities** For power users who need access to functionality beyond the pre-built tools, the MCP Tally API server provides direct access to the underlying GraphQL API: #### **execute_graphql_query Tool** Execute arbitrary GraphQL queries against the Tally API: ``` Parameters: - query: GraphQL query string - variables: Optional variables for the GraphQL query Example: Query: "query GetOrganizations { organizations(input: { page: { limit: 3 } }) { nodes { ... on Organization { id name slug chainIds } } } }" Response: Raw GraphQL response data with full access to any Tally API functionality ``` #### **tally-api-schema Resource** Get the complete GraphQL schema via introspection: ``` URI: tally://api/schema Content-Type: application/json Returns: Complete GraphQL schema including all types, fields, mutations, enums, and directives ``` **Benefits:** - **Unlimited Access**: Query any data available in the Tally GraphQL API - **Real Schema**: Always up-to-date schema directly from the API via introspection - **Custom Queries**: Build specialized queries for unique use cases - **Development Aid**: Full schema documentation for building custom integrations - **Future-Proof**: Access new Tally API features before they're added as dedicated tools **Use Cases:** - Research specific governance patterns not covered by existing tools - Build custom analysis workflows with specialized data requirements - Access experimental or beta Tally API features - Create complex aggregations across multiple data sources - Debug and understand the underlying API structure ## Quick Start ### Prerequisites - [Bun](https://bun.sh/) runtime - Tally API key from [Tally.xyz](https://tally.xyz) ### Installation #### **Option 1: Install from npm (Recommended)** ```bash # Install globally npm install -g mcp-tally-api # Or install locally in your project npm install mcp-tally-api # Set up environment echo "TALLY_API_KEY=your_api_key_here" > .env ``` #### **Option 2: Build from source** ```bash # Clone and install git clone https://github.com/withtally/mcp-tally-api.git cd mcp-tally-api bun install # Set up environment echo "TALLY_API_KEY=your_api_key_here" > .env # Build and test bun run build bun run test ```