getProposals
Retrieve all governance proposals for a specific DAO to review active decisions and voting status.
Instructions
Get all proposals for a specific DAO
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| daoId | Yes | The ID of the DAO to get proposals for |
Implementation Reference
- src/mcp/server/index.ts:148-182 (handler)The asynchronous handler function for the MCP 'getProposals' tool. It calls the FutarchyApiClient.getProposals method with the provided daoId, handles the response, and returns formatted text content or an error.
async ({ daoId }) => { try { const response = await apiClient.getProposals(daoId); if (!response.success) { return { content: [ { type: "text" as const, text: response.error || 'Unknown error', }, ], isError: true, }; } return { content: [ { type: "text" as const, text: JSON.stringify(response.data, null, 2), }, ], }; } catch (error: any) { return { content: [ { type: "text" as const, text: `Error fetching proposals: ${error.message || 'Unknown error'}`, }, ], isError: true, }; } - src/mcp/server/index.ts:142-184 (registration)Registration of the 'getProposals' MCP tool using McpServer.tool(), including the tool name, description, input schema (daoId), and handler reference.
server.tool( "getProposals", "Get all proposals for a specific DAO", { daoId: z.string().describe("The ID of the DAO to get proposals for"), }, async ({ daoId }) => { try { const response = await apiClient.getProposals(daoId); if (!response.success) { return { content: [ { type: "text" as const, text: response.error || 'Unknown error', }, ], isError: true, }; } return { content: [ { type: "text" as const, text: JSON.stringify(response.data, null, 2), }, ], }; } catch (error: any) { return { content: [ { type: "text" as const, text: `Error fetching proposals: ${error.message || 'Unknown error'}`, }, ], isError: true, }; } } ); - src/mcp/common/types.ts:63-65 (schema)Zod schema definition for the input parameters of getProposals (GetProposalsParamsSchema), matching the inline schema used in registration.
export const GetProposalsParamsSchema = z.object({ daoId: z.string().describe("The ID of the DAO to get proposals for"), }); - src/mcp/common/api.ts:56-73 (helper)Helper function in FutarchyApiClient that performs the actual HTTP fetch to retrieve proposals for a given DAO ID from the backend API.
async getProposals(daoId: string): Promise<Response> { try { const response = await fetch(`${this.baseUrl}/daos/${daoId}/proposals`); if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } const data = await response.json(); return { success: true, data: data.proposals }; } catch (error: any) { return { success: false, error: error.message || `Failed to fetch proposals for DAO: ${daoId}` }; }