get_cosmos_proposal
Retrieve governance proposal details for Cosmos-based blockchains to analyze voting parameters, status updates, and proposal content.
Instructions
Get specific governance proposal details
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| blockchain | Yes | Blockchain name | |
| network | No | Network type (defaults to mainnet) | |
| proposalId | Yes | Proposal ID |
Implementation Reference
- Tool schema definition including input validation for blockchain, proposalId, and optional network.{ name: 'get_cosmos_proposal', description: 'Get specific governance proposal details', inputSchema: { type: 'object', properties: { blockchain: { type: 'string', description: 'Blockchain name', }, proposalId: { type: 'number', description: 'Proposal ID', }, network: { type: 'string', enum: ['mainnet', 'testnet'], description: 'Network type (defaults to mainnet)', }, }, required: ['blockchain', 'proposalId'], }, },
- src/handlers/cosmos-handlers.ts:578-594 (handler)Handler dispatch case that extracts arguments and delegates to CosmosService.getProposal, formats response.case 'get_cosmos_proposal': { const blockchain = args?.blockchain as string; const proposalId = args?.proposalId as number; const network = (args?.network as 'mainnet' | 'testnet') || 'mainnet'; const result = await cosmosService.getProposal(blockchain, proposalId, network); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], isError: !result.success, }; }
- src/services/cosmos-service.ts:296-312 (handler)Core implementation fetches proposal details from Cosmos Gov REST endpoint using getRestUrl and fetchRest.async getProposal( blockchain: string, proposalId: number, network: 'mainnet' | 'testnet' = 'mainnet' ): Promise<EndpointResponse> { try { const baseUrl = this.getRestUrl(blockchain, network); const url = `${baseUrl}/cosmos/gov/v1beta1/proposals/${proposalId}`; return this.fetchRest(url); } catch (error) { return { success: false, error: error instanceof Error ? error.message : 'Failed to get Cosmos proposal', }; } }
- src/index.ts:88-101 (registration)Registers all tools including Cosmos tools (via registerCosmosHandlers) to the MCP server's tool list for listTools request.const tools: Tool[] = [ ...registerBlockchainHandlers(server, blockchainService), ...registerDomainHandlers(server, domainResolver), ...registerTransactionHandlers(server, advancedBlockchain), ...registerTokenHandlers(server, advancedBlockchain), ...registerMultichainHandlers(server, advancedBlockchain), ...registerContractHandlers(server, advancedBlockchain), ...registerUtilityHandlers(server, advancedBlockchain), ...registerEndpointHandlers(server, endpointManager), ...registerSolanaHandlers(server, solanaService), ...registerCosmosHandlers(server, cosmosService), ...registerSuiHandlers(server, suiService), ...registerDocsHandlers(server, docsManager), ];