Two things separate this from an assistant editing a spreadsheet. Models are Python files under version control with branches and pull requests, so a scenario is a branch rather than a copy of a file. And they execute in isolated containers with no outbound network, which is the answer to the obvious question about pointing an agent at financial data. The surface is large enough that the documented way in is `search_tools` rather than loading everything.
A hosted MCP server for Bridge Town, a git-versioned financial modelling platform aimed at FP&A work. An agent creates a project, commits Python model files, runs them in a cloud sandbox, queries the data, writes output into Google Sheets and branches scenarios — all as MCP calls, while the conversation stays in whatever client you already use.
- Project and file lifecycle: create a project, list and read files, commit or patch model code, and describe the model — `create_project`, `list_projects`, `list_files`, `read_file`, `commit_files`, `patch_file`, `describe_model`
- Execution: run a model in the sandbox and read back stdout, structured outputs, files or dashboards, with run history kept — `run`, `get_run`, `list_runs`
- Data: connected sources listed, a Google Sheet imported as a snapshot, and SQL run against it — `list_data_sources`, `ingest_data_source`, `query_data`
- Google Sheets as an output target — write a run's results into a cell range, then format and restructure the sheet for statement-grade layout — `write_gsheet`, `format_gsheet`, `modify_gsheet_structure`
- Discovery built for a large surface: find the right tool for a task, fetch one tool's full schema, and read a bundled FP&A skill template — `search_tools`, `get_tool`, `get_skill`
- Resources for health, skills and templates — `health://status`, `skills://`, `skill://{name}`, `templates://`, `template://{name}`
A Bridge Town account. From Claude.ai it is OAuth and no token: add `https://api.bridgetown.builders/mcp` as a custom connector and approve the prompt. Other clients use a token generated at the connect page — tokens start with `btk_` and travel in an `Authorization: Bearer` header. Transport is Streamable HTTP only; clients that need a spawned process use `mcp-remote`, or the repository's stdio shim, `BRIDGE_TOWN_API_TOKEN=btk_YOUR_TOKEN npx github:Bridge-Town/financial-modeling-mcp`. Google Sheets access uses Google's `drive.file` scope, so only sheets you pick through the Picker or that Bridge Town created are reachable, and model runs execute in isolated containers with no outbound network.
One command plus a key — BRIDGE_TOWN_API_TOKEN=btk_YOUR_TOKEN npx github:Bridge-Town/financial-modeling-mcp, then supply credentials
