Skip to main content
Glama

basecamp_get_project

Retrieve complete project details including name, description, dock configuration, and metadata from Basecamp. Use this tool to fetch information for a specific project by providing its ID.

Instructions

Fetch detailed information about a specific Basecamp project. This tool retrieves complete project details including name, description, dock configuration, and metadata.

Examples:

  • Use when: "Get details for project 12345"

  • Use when: Need full project information including dock configuration

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID to retrieve

Implementation Reference

  • Handler function that executes the basecamp_get_project tool: initializes client, fetches project by ID, returns formatted JSON or error message.
    async (params) => {
      try {
        const client = await initializeBasecampClient();
    
        const response = await client.projects.get({
          params: { projectId: params.project_id },
        });
    
        if (response.status !== 200 || !response.body) {
          throw new Error(`Failed to fetch project: ${response.status}`);
        }
    
        const project = response.body;
    
        const jsonData = {
          id: project.id,
          name: project.name,
          description: project.description || "",
          created_at: project.created_at,
          updated_at: project.updated_at,
          url: project.app_url,
          dock: project.dock || [],
        };
    
        return {
          content: [{ type: "text", text: JSON.stringify(jsonData, null, 2) }],
        };
      } catch (error) {
        return {
          content: [{ type: "text", text: handleBasecampError(error) }],
        };
      }
    },
  • Registration of the basecamp_get_project tool via server.registerTool, including title, description, input schema, annotations, and handler reference.
      server.registerTool(
        "basecamp_get_project",
        {
          title: "Get Basecamp Project Details",
          description: `Fetch detailed information about a specific Basecamp project. This tool retrieves complete project details including name, description, dock configuration, and metadata.
    
    Examples:
      - Use when: "Get details for project 12345"
      - Use when: Need full project information including dock configuration`,
          inputSchema: {
            project_id: BasecampIdSchema.describe("Project ID to retrieve"),
          },
          annotations: {
            readOnlyHint: true,
            destructiveHint: false,
            idempotentHint: true,
            openWorldHint: true,
          },
        },
        async (params) => {
          try {
            const client = await initializeBasecampClient();
    
            const response = await client.projects.get({
              params: { projectId: params.project_id },
            });
    
            if (response.status !== 200 || !response.body) {
              throw new Error(`Failed to fetch project: ${response.status}`);
            }
    
            const project = response.body;
    
            const jsonData = {
              id: project.id,
              name: project.name,
              description: project.description || "",
              created_at: project.created_at,
              updated_at: project.updated_at,
              url: project.app_url,
              dock: project.dock || [],
            };
    
            return {
              content: [{ type: "text", text: JSON.stringify(jsonData, null, 2) }],
            };
          } catch (error) {
            return {
              content: [{ type: "text", text: handleBasecampError(error) }],
            };
          }
        },
      );
  • Zod schema for Basecamp ID (number), used in the tool's project_id input parameter.
    export const BasecampIdSchema = z
      .number()
      .describe("Basecamp resource identifier");
  • src/index.ts:61-61 (registration)
    Top-level call to registerProjectTools which includes basecamp_get_project among other project tools.
    registerProjectTools(server);

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/stefanoverna/basecamp-mcp'

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