Basecamp Classic Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Basecamp Classic Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
An MCP server for the Basecamp Classic API, built with FastMCP.
uv syncSet these environment variables before running:
| Variable | Description |
|---|---|
BASECAMP_URL | Your Basecamp account URL, e.g. https://yourcompany.basecamphq.com |
BASECAMP_USERNAME | Your Basecamp username or API token |
BASECAMP_PASSWORD | Your Basecamp password (or X if using an API token) |
To use an API token instead of password: set BASECAMP_USERNAME to your token and BASECAMP_PASSWORD to X.
# stdio (for Claude Desktop / MCP clients)
uv run python server.py
# or via entry point
uv run basecamp-classic-mcpUse the MCP Inspector to interactively test tools in a browser UI:
uv run --env-file .env fastmcp dev inspector server.py:mcpAdd to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"basecamp-classic": {
"command": "uv",
"args": ["run", "--directory", "/path/to/basecamp-classic-mcp", "python", "server.py"],
"env": {
"BASECAMP_URL": "https://yourcompany.basecamphq.com",
"BASECAMP_USERNAME": "your-api-token",
"BASECAMP_PASSWORD": "X"
}
}
}
}list_projects — List all active projectsget_project(project_id) — Get project detailslist_todo_lists(project_id) — List to-do lists in a projectget_todo_list(todo_list_id) — Get a to-do list with its itemslist_todo_items(todo_list_id) — List items in a to-do listcreate_todo_item(todo_list_id, content, ...) — Create a new to-do itemupdate_todo_item(todo_item_id, ...) — Update an existing to-do itemcomplete_todo_item(todo_item_id) — Mark an item completeuncomplete_todo_item(todo_item_id) — Mark an item incompletedelete_todo_item(todo_item_id) — Delete a to-do itemlist_messages(project_id) — List recent messages in a projectget_message(message_id) — Get a message with its bodycreate_message(project_id, title, body, ...) — Post a new messagelist_comments(message_id) — List comments on a messagecreate_comment(message_id, body) — Add a comment to a messagelist_people — List all people in the accountget_person(person_id) — Get a person's detailsget_current_person — Get the authenticated user's detailslist_milestones(project_id) — List milestones in a projectcomplete_milestone(milestone_id) — Mark a milestone completeuncomplete_milestone(milestone_id) — Mark a milestone incompletelist_time_entries(project_id) — List time entries for a projectcreate_time_entry(project_id, date, hours, description, ...) — Log time on a project~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.