Skip to main content
Glama
jhliberty

Basecamp MCP Server

by jhliberty

get_uploads

Retrieve a list of uploads in a Basecamp project or specific vault by providing the project ID, enabling organized file management and tracking.

Instructions

List uploads in a project or vault

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idYesProject ID
vault_idNoOptional vault ID to limit to specific vault

Implementation Reference

  • Core handler function in BasecampClient that retrieves uploads from a project or specific vault using the Basecamp API.
    async getUploads(projectId: string, vaultId?: string): Promise<Upload[]> {
      const endpoint = vaultId 
        ? `/buckets/${projectId}/vaults/${vaultId}/uploads.json`
        : `/buckets/${projectId}/uploads.json`;
      const response = await this.client.get(endpoint);
      return response.data;
    }
  • src/index.ts:461-472 (registration)
    Registers the 'get_uploads' tool in the MCP server's ListTools response, defining its name, description, and input schema. Note: No corresponding case handler in CallToolRequestSchema yet.
    {
      name: 'get_uploads',
      description: 'List uploads in a project or vault',
      inputSchema: {
        type: 'object',
        properties: {
          project_id: { type: 'string', description: 'Project ID' },
          vault_id: { type: 'string', description: 'Optional vault ID to limit to specific vault' },
        },
        required: ['project_id'],
      },
    },
  • Type definition for Upload objects returned by the getUploads handler.
    export interface Upload {
      id: string;
      filename: string;
      title?: string;
      description?: string;
      byte_size: number;
      content_type: string;
      created_at: string;
      creator: Person;
      download_url: string;
      project?: ProjectInfo;
    }
    
    export interface Webhook {
      id: string;
      payload_url: string;
      types: string[];
      created_at: string;
      updated_at: string;
    }
    
    export interface DailyCheckIn {
      id: string;
      title: string;
      created_at: string;
      updated_at: string;
      creator: Person;
    }
    
    export interface QuestionAnswer {
      id: string;
      content: string;
      created_at: string;
      creator: Person;
    }
    
    export interface SearchResults {
      projects?: BasecampProject[];
      todos?: Todo[];
      messages?: Message[];
      campfire_lines?: CampfireLine[];
      uploads?: Upload[];
    }
    
    export interface APIResponse<T = any> {
      status: 'success' | 'error';
      data?: T;
      error?: string;
      message?: string;
    }
    
    export interface MCPToolResult {
      status: 'success' | 'error';
      [key: string]: any;
    }
    
    export type AuthMode = 'basic' | 'oauth';
  • Interface defining the structure of upload data.
    export interface Upload {
      id: string;
      filename: string;
      title?: string;
      description?: string;
      byte_size: number;
      content_type: string;
      created_at: string;
      creator: Person;
      download_url: string;
      project?: ProjectInfo;
    }

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

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