MPC Tally API Server

# MPC Tally API Server A Model Context Protocol (MCP) server for interacting with the Tally API. This server allows AI agents to fetch information about DAOs, including their governance data, proposals, and metadata. ## Features - List DAOs sorted by popularity or exploration status - Fetch comprehensive DAO metadata including social links and governance information - Pagination support for handling large result sets - Built with TypeScript and GraphQL - Full test coverage with Bun's test runner ## Installation ```bash # Clone the repository git clone https://github.com/yourusername/mpc-tally-api-server.git cd mpc-tally-api-server # Install dependencies bun install # Build the project bun run build ``` ## Configuration 1. Create a `.env` file in the root directory: ```env TALLY_API_KEY=your_api_key_here ``` 2. Get your API key from [Tally](https://tally.xyz) ⚠️ **Security Note**: Keep your API key secure: - Never commit your `.env` file - Don't expose your API key in logs or error messages - Rotate your API key if it's ever exposed - Use environment variables for configuration ## Usage ### Running the Server ```bash # Start the server bun run start # Development mode with auto-reload bun run dev ``` ### Claude Desktop Configuration Add the following to your Claude Desktop configuration: ```json { "tally": { "command": "node", "args": [ "/path/to/mpc-tally-api-server/build/index.js" ], "env": { "TALLY_API_KEY": "your_api_key_here" } } } ``` ## Available Scripts - `bun run clean` - Clean the build directory - `bun run build` - Build the project - `bun run start` - Run the built server - `bun run dev` - Run in development mode with auto-reload - `bun test` - Run tests - `bun test --watch` - Run tests in watch mode - `bun test --coverage` - Run tests with coverage ## API Functions The server exposes the following MCP functions: ### list_daos Lists DAOs sorted by specified criteria. Parameters: - `limit` (optional): Maximum number of DAOs to return (default: 20, max: 50) - `afterCursor` (optional): Cursor for pagination - `sortBy` (optional): How to sort the DAOs (default: popular) - Options: "id", "name", "explore", "popular" ## License MIT