basecamp_get_person
Retrieve detailed information about a specific person in Basecamp by providing their unique identifier.
Instructions
Get details about a specific person.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | Basecamp resource identifier |
Implementation Reference
- src/tools/people.ts:145-181 (handler)Handler function that initializes the Basecamp client, fetches the person details by ID, returns formatted JSON response or error message.async (params) => { try { const client = await initializeBasecampClient(); const response = await client.people.get({ params: { personId: params.person_id }, }); if (response.status !== 200 || !response.body) { throw new Error("Failed to get person"); } const person = response.body; return { content: [ { type: "text", text: JSON.stringify( { id: person.id, name: person.name, email: person.email_address, title: person.title, }, null, 2, ), }, ], }; } catch (error) { return { content: [{ type: "text", text: handleBasecampError(error) }], }; } },
- src/schemas/common.ts:10-12 (schema)Zod schema for Basecamp IDs, used in inputSchema.person_id for validating the person_id parameter.export const BasecampIdSchema = z .number() .describe("Basecamp resource identifier");
- src/tools/people.ts:130-144 (registration)Tool registration call defining the name, title, description, input schema, and annotations for basecamp_get_person.server.registerTool( "basecamp_get_person", { title: "Get Basecamp Person", description: "Get details about a specific person.", inputSchema: { person_id: BasecampIdSchema, }, annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, },