MCP Skills Resources
What are Bridge Town skills?
Section titled “What are Bridge Town skills?”Bridge Town ships a set of bundled skill templates: curated, Jinja2-templated
Markdown prompts that guide an AI agent through common FP&A workflows. Each skill
is returned as a raw template — Jinja2 placeholders such as {{ tenant_name }}
remain literal in the response — so the caller can render the template with the
appropriate context before attaching it to an agent conversation.
Skills are MCP resources, not tools. An agent reads a skill template by
fetching a resource URI — just as it reads health://status to check server
health — rather than calling a tool.
MCP resource URIs
Section titled “MCP resource URIs”| Resource URI | Returns |
|---|---|
skills:// | JSON catalog of all bundled skills (name, description, category, required context fields) |
skill://{name} | Full metadata and raw template body for one skill, by name |
Read the catalog
Section titled “Read the catalog”Read resource: skills://Response shape:
{ "count": 16, "skills": [ { "name": "create_revenue_model", "description": "Build a bottom-up or top-down revenue forecasting model in Python.", "required_context": ["tenant_name", "model_name", "project_name"] } ]}Read a single skill
Section titled “Read a single skill”Read resource: skill://create_revenue_modelResponse shape:
{ "name": "create_revenue_model", "description": "Build a bottom-up or top-down revenue forecasting model in Python.", "category": "model-authoring", "required_context": ["tenant_name", "model_name", "project_name"], "template": "You are building a **revenue forecasting model** for {{ tenant_name }}.\n\n- Model identifier: `{{ model_name }}`\n- Project: `{{ project_name }}`\n\n..."}Note:
skill://{name}also supports MCPcompletion/complete— clients that speak the MCP completion protocol receive autocomplete suggestions for the{name}parameter as you type.
How to reach skills via search_tools
Section titled “How to reach skills via search_tools”When you search for a skill-related task, search_tools returns both regular
tool matches and a skill_matches array. Each skill match includes the
canonical resource_uri, a related_tools list, and a next_action hint:
{ "items": [], "skill_matches": [ { "name": "bridge-town-gsheet-formatting", "title": "Bridge Town Gsheet Formatting", "description": "Use whenever a Bridge Town agent is about to write model output to Google Sheets.", "resource_uri": "skill://bridge-town-gsheet-formatting", "related_tools": ["write_gsheet", "format_gsheet", "modify_gsheet_structure", "ingest_data_source"], "next_action": "get_skill(name='bridge-town-gsheet-formatting', include_template=true)" } ]}Passing domain="skills" returns skill_matches from the registry directly,
with items: [] (no regular tool results). If no skills match, the response
includes reason="no_skill_matches" with a recovery hint:
{ "items": [], "total_count": 0, "truncated": false, "reason": "no_skill_matches", "recovery": { "message": "No skills matched this query.", "next_step": "Read skills:// to browse all available skills." }}See the search_tools reference for details.
get_skill — compatibility bridge for Claude.ai-style hosts
Section titled “get_skill — compatibility bridge for Claude.ai-style hosts”skills:// and skill://{name} are the canonical way to access skills.
Full MCP clients (Claude Code, Claude Desktop, custom SDK clients) can read
these resources directly and should prefer that path.
Claude.ai’s MCP connector cannot autonomously read resources during a
conversation. For these hosts, Bridge Town provides the get_skill tool as a
compatibility bridge. It reads from the same canonical registry as
skill://{name} — there is no separate skill store.
When to use get_skill:
| Host type | Recommended path |
|---|---|
| Claude.ai (OAuth connector) | search_tools → get_skill(include_template=true) |
| Claude Code / Claude Desktop | Read skill://{name} directly |
| Claude API (Messages API connector) | get_skill (resources not available via API connector) |
| Custom full MCP client | Read skill://{name} directly |
Compact-metadata-first behavior:
get_skill returns compact metadata by default (include_template=false):
name, description, category, resource_uri, required_context, and
related_tools. Request include_template=true only when you are about to
use the template — this avoids loading large Jinja2 bodies unnecessarily.
// Compact lookup (default){"name": "get_skill", "arguments": {"name": "bridge-town-gsheet-formatting"}}
// Full template retrieval — use when you are ready to render and apply the skill{"name": "get_skill", "arguments": {"name": "bridge-town-gsheet-formatting", "include_template": true}}See the get_skill reference for the full
parameter schema and response shape.
Canonical bundled skill catalog
Section titled “Canonical bundled skill catalog”These 17 skills ship with every Bridge Town deployment. They are the stable,
registry-ready surface of the skills:// resource. The authoritative list at
runtime is always skills:// itself — the table below documents the bundled set
as of this release.
| Name | Category | Description |
|---|---|---|
bridge-town-gsheet-formatting | gsheet-formatting | Use whenever a Bridge Town agent is about to write model output to Google Sheets. Teaches how to shape Python output so it arrives in the sheet correctly formatted. |
collaborate_on_project | collaboration | Set up and manage multi-analyst collaboration on a Bridge Town project — sharing, pull-request review workflow, and internal template cloning. |
commit_files | file-management | Atomically commit multiple file creates, updates, and deletes in one git commit, keeping the repo in a consistent state. |
connect_google_sheets | data-integration | Connect a Google Sheet to a Bridge Town project and import data for modelling. |
convert_excel_workbook | data-integration | Convert an existing Excel financial model into a reviewable Bridge Town Python project — profile, generate, review findings, apply, run, and dashboard. |
create_cash_flow_model | model-authoring | Build a cash flow model covering operating, investing, and financing activities. |
create_dashboard | dashboards | Create a visual dashboard from a Bridge Town model run output — chart type discovery, output structure, and the full create → share flow. |
create_expense_model | model-authoring | Build an operating expense (OPEX) model with departmental budgets in Python. |
create_headcount_model | model-authoring | Build a headcount plan with loaded costs, hiring schedules, and attrition. |
create_marketplace_gmv_model | model-authoring | Forecast GMV, take-rate revenue, and supply/demand dynamics for a marketplace. |
create_revenue_model | model-authoring | Build a bottom-up or top-down revenue forecasting model in Python. |
create_unit_economics_model | model-authoring | Model CAC, LTV, payback period, and expansion revenue for a SaaS business. |
create_usage_based_pricing_model | model-authoring | Forecast revenue for usage-based or consumption pricing models (API calls, seats, compute). |
discover_and_query_data | data-integration | Discover data sources attached to a project and query them with SQL. |
gsheet-finance-styles | gsheet-formatting | Apply finance-grade visual formatting via format_gsheet after writing values to a Google Sheet. Pair with bridge-town-gsheet-formatting. |
run_scenario_analysis | scenario-analysis | Run what-if / sensitivity / compare-assumptions analysis on an existing project via a branch-based workflow. |
scenario_analysis | model-authoring | Author a new scenario/sensitivity model from scratch in Python — defines BASE_ASSUMPTIONS, SCENARIOS, and SENSITIVITY_DRIVERS. |
Canonical MCP skills vs. public user-authored skills
Section titled “Canonical MCP skills vs. public user-authored skills”Bridge Town has two distinct surfaces that both use the word “skills”:
| Surface | URI / endpoint | What it contains |
|---|---|---|
| Canonical MCP skill templates | skills:// · skill://{name} | The 17 bundled templates above. Stable. Ships with every Bridge Town server. Authoritative source of truth for agent guidance. |
| Public user-authored skills | GET /api/skills | User-created and community-published skill templates stored in the Bridge Town database. Dynamic — varies by deployment, user, and community activity. Not part of the MCP resource surface. |
Key distinction for agents and registry reviewers:
skills://is a stable MCP resource backed by files bundled into the server image. It does not change at runtime and is safe to rely on across deployments./api/skillsis a dynamic REST collection of user-created content. Its contents vary per tenant and community state. It is not the source of truth forskills://and is not surfaced as an MCP resource.
When an agent or integration references skills://, it is talking to the
canonical bundled set, not the community catalog. When a user visits the Bridge
Town web app’s Skills directory, they are browsing the public REST surface.
Related
Section titled “Related”- MCP Apps — interactive UI over existing tool results via
ui://resources get_skillreference — compatibility bridge for hosts that cannot read resourcessearch_toolsreference — includes thedomain="skills"special case- Connecting Claude.ai — Claude.ai-style
search_tools→get_skillworkflow - Connecting any MCP Client — full MCP resource surface overview
- Agent Workflow Cookbook — examples of attaching skills to agent workflows