Skip to content

MCP Skills Resources

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.

Resource URIReturns
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 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 resource: skill://create_revenue_model

Response 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 MCP completion/complete — clients that speak the MCP completion protocol receive autocomplete suggestions for the {name} parameter as you type.

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 typeRecommended path
Claude.ai (OAuth connector)search_toolsget_skill(include_template=true)
Claude Code / Claude DesktopRead skill://{name} directly
Claude API (Messages API connector)get_skill (resources not available via API connector)
Custom full MCP clientRead 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.

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.

NameCategoryDescription
bridge-town-gsheet-formattinggsheet-formattingUse 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_projectcollaborationSet up and manage multi-analyst collaboration on a Bridge Town project — sharing, pull-request review workflow, and internal template cloning.
commit_filesfile-managementAtomically commit multiple file creates, updates, and deletes in one git commit, keeping the repo in a consistent state.
connect_google_sheetsdata-integrationConnect a Google Sheet to a Bridge Town project and import data for modelling.
convert_excel_workbookdata-integrationConvert an existing Excel financial model into a reviewable Bridge Town Python project — profile, generate, review findings, apply, run, and dashboard.
create_cash_flow_modelmodel-authoringBuild a cash flow model covering operating, investing, and financing activities.
create_dashboarddashboardsCreate a visual dashboard from a Bridge Town model run output — chart type discovery, output structure, and the full create → share flow.
create_expense_modelmodel-authoringBuild an operating expense (OPEX) model with departmental budgets in Python.
create_headcount_modelmodel-authoringBuild a headcount plan with loaded costs, hiring schedules, and attrition.
create_marketplace_gmv_modelmodel-authoringForecast GMV, take-rate revenue, and supply/demand dynamics for a marketplace.
create_revenue_modelmodel-authoringBuild a bottom-up or top-down revenue forecasting model in Python.
create_unit_economics_modelmodel-authoringModel CAC, LTV, payback period, and expansion revenue for a SaaS business.
create_usage_based_pricing_modelmodel-authoringForecast revenue for usage-based or consumption pricing models (API calls, seats, compute).
discover_and_query_datadata-integrationDiscover data sources attached to a project and query them with SQL.
gsheet-finance-stylesgsheet-formattingApply finance-grade visual formatting via format_gsheet after writing values to a Google Sheet. Pair with bridge-town-gsheet-formatting.
run_scenario_analysisscenario-analysisRun what-if / sensitivity / compare-assumptions analysis on an existing project via a branch-based workflow.
scenario_analysismodel-authoringAuthor 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”:

SurfaceURI / endpointWhat it contains
Canonical MCP skill templatesskills:// · skill://{name}The 17 bundled templates above. Stable. Ships with every Bridge Town server. Authoritative source of truth for agent guidance.
Public user-authored skillsGET /api/skillsUser-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/skills is a dynamic REST collection of user-created content. Its contents vary per tenant and community state. It is not the source of truth for skills:// 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.