Skip to main content
Glama

getProposal

Retrieve detailed information about a specific Snapshot.org proposal using its unique ID to analyze governance decisions and voting data.

Instructions

Get details of a specific proposal

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
proposalIdYesID of the proposal

Implementation Reference

  • MCP tool handler for 'getProposal': validates input arguments using Zod schema and delegates execution to SnapshotService.getProposal, returning the result as JSON string.
    case "getProposal": {
      const parsedArgs = ProposalParamsSchema.parse(args);
      const proposal = await this.snapshotService.getProposal(parsedArgs.proposalId);
      return {
        content: [{
          type: "text",
          text: JSON.stringify(proposal, null, 2)
        }]
      };
  • Zod schema defining the input parameters for the getProposal tool (proposalId: string). Used for runtime validation in the handler.
    const ProposalParamsSchema = z.object({
      proposalId: z.string()
    });
  • src/server.ts:93-103 (registration)
    Registers the 'getProposal' tool in the MCP tools/list response, providing name, description, and JSON inputSchema for validation.
    {
      name: "getProposal",
      description: "Get details of a specific proposal",
      inputSchema: {  // Changed from parameters to inputSchema
        type: "object",
        properties: {
          proposalId: { type: "string", description: "ID of the proposal" }
        },
        required: ["proposalId"]
      }
    },
  • Core implementation of getProposal: executes GraphQL query against Snapshot API to fetch detailed proposal information by ID.
    async getProposal(proposalId: string): Promise<Proposal> {
      const query = `
        query Proposal {
          proposal(id: "${proposalId}") {
            id
            title
            body
            choices
            start
            end
            snapshot
            state
            author
            space {
              id
              name
            }
          }
        }
      `;
    
      const result = await this.queryGraphQL(query);
      return result.proposal;
    }

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/crazyrabbitLTC/mcp-snapshot-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server