Skip to main content
Glama

Cursor Bridge MCP

A local MCP server that gives Claude Code (and any MCP-compatible AI tool) native understanding of Cursor's context ecosystem — rules, agents, and skills.

Why

Most teams aren't all-in on one AI tool. Some developers prefer Cursor, others use Claude Code, and some switch between both depending on the task. But Cursor's context system — rules, agents, and skills — only works inside Cursor. Claude Code ignores .cursor/ entirely and reads only CLAUDE.md.

That leaves teams with a choice: maintain parallel context systems that drift apart, or pick one tool and lose the other's strengths. Cursor Bridge eliminates this by making Cursor's context files consumable by any MCP-compatible AI tool. Write your conventions once in .cursor/rules/, define your agents in .cursor/agents/, package your skills in .cursor/skills/ — and every developer on the team gets the same context regardless of which tool they use.

Related MCP server: @willpowell8/cursor-cloud-agent-mcp

What It Does

Cursor Bridge reads .cursor/rules/, .cursor/agents/, and .cursor/skills/, applies Cursor's activation logic (glob matching, always-apply, description-based discovery), and serves the right context to any AI tool on demand.

  • Rules are routed intelligently — always-apply rules inject automatically, glob-matched rules activate based on the files you're working on, and description-matched rules surface when the task is relevant

  • Agents are served as loadable role instructions — when a task matches an agent's description, the AI can adopt that agent's behavioral guidance

  • Skills are served as on-demand knowledge packages — the AI browses the index and loads what it needs, including supporting scripts and references

Quick Start

The fastest way to get running — no install needed:

{
  "mcpServers": {
    "cursor-bridge": {
      "command": "npx",
      "args": ["cursor-bridge-mcp"]
    }
  }
}

Add this to .claude/settings.json (Claude Code) or .cursor/mcp.json (Cursor). That's it — npx downloads and runs the latest version automatically.

Other Install Options

Install globally

npm install -g cursor-bridge-mcp

Then use "command": "cursor-bridge-mcp" in your MCP config instead of npx.

Build from source

git clone https://github.com/theamazingwolf/cursor-bridge-mcp.git
cd cursor-bridge-mcp
npm install
npm run build
npm link

Then use "command": "cursor-bridge-mcp" in your MCP config, or point directly to the build:

{
  "mcpServers": {
    "cursor-bridge": {
      "command": "node",
      "args": ["/path/to/cursor-bridge-mcp/dist/index.cjs"]
    }
  }
}

Tools

get_active_rules

Returns rules that apply to your current files and/or task. This is the primary tool — call it when starting work or switching file context.

{
  "files": ["src/components/Button.tsx"],
  "task_description": "Refactoring the button component"
}

Rules are matched by activation mode:

  • alwaysalwaysApply: true rules are always included

  • auto — rules with globs patterns are included when files match

  • agent-requested — rules with no globs are included when the task description overlaps with the rule's description

get_context_index

Returns a lightweight menu of all available rules, agents, and skills — descriptions only, no content. Use this to discover what's available.

{
  "types": ["rule", "agent", "skill"]
}

get_rule

Fetches the full content of a specific rule by name.

{ "name": "data-models-relationships" }

get_agent

Fetches the full definition of a Cursor agent — including its system prompt / instructions.

{ "name": "security-auditor" }

get_skill

Fetches the full content of a skill package.

{
  "name": "pdf-processing",
  "include_supporting_files": true
}

get_skill_file

Fetches a specific supporting file from within a skill directory.

{
  "skill_name": "pdf-processing",
  "file_path": "scripts/extract-text.py"
}

Usage with Claude Code

Add a CLAUDE.md to any project with a .cursor/ directory to tell Claude Code to use the bridge automatically. Here's a template:

## Cursor Bridge MCP

When the cursor-bridge MCP is connected, use it to read Cursor context files
instead of reading .cursor/ files directly.

- On session start, call `get_context_index` to discover available context
- When working on files, call `get_active_rules` with current file paths and/or
  a task description to get relevant rules with full content
- Use `get_rule`, `get_agent`, `get_skill` to load specific items by name
- Use `get_skill_file` to load supporting files from skill packages

The bridge applies Cursor's activation logic (glob matching, always-apply,
description relevance) so you get the right context automatically.

This way Claude Code knows to call the MCP tools rather than manually reading and interpreting .cursor/ files. The bridge handles the routing logic — which rules apply, which don't — so the AI doesn't have to.

Cursor Context Formats

Rules (.cursor/rules/)

Standard .mdc or RULE.md files with YAML frontmatter:

---
description: "React component conventions"
globs: "src/components/**/*.tsx"
alwaysApply: false
---

# Component Patterns

Your conventions here...

Both .mdc files directly in the rules directory and RULE.md files in subdirectories are supported.

Agents (.cursor/agents/)

Markdown files with agent metadata in frontmatter:

---
description: "Reviews code for security vulnerabilities"
model: inherit
readonly: true
is_background: true
---

You are a security specialist...

Skills (.cursor/skills/)

Directory-based packages with a SKILL.md and optional scripts/, references/, assets/ subdirectories:

.cursor/skills/pdf-processing/
├── SKILL.md
├── scripts/extract-text.py
└── references/form-fields.md

Configuration

Optionally create .cursor-bridge/config.yaml to customize directory paths:

rules_directory: ".cursor/rules"
agents_directory: ".cursor/agents"
skills_directory: ".cursor/skills"

All paths are relative to the workspace root. If no config file exists, the defaults above are used.

How It Works

  • No file watchers — the index rebuilds from disk on each tool call, parsing only YAML frontmatter (not full file content). This keeps every call fresh and avoids platform-specific reliability issues.

  • Lazy content loading — full markdown bodies are only read when a tool specifically needs them (e.g., get_rule, get_active_rules for matched rules). The index itself never loads content.

  • No network access — pure local file parsing. No AI calls, no external APIs.

  • No code execution — skill scripts are served as text content, never executed.

Development

npm install
npm run build
npm test

Available Tools

6 tools
get_active_rulesA

Returns rules that apply to a given set of files and/or task description. Call at session start or when switching file context.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNoFile paths relative to workspace root
task_descriptionNoDescription of the current task for agent-requested rule matching

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits beyond the fact that it returns data. There is no mention of whether the tool has side effects, is read-only, or requires specific permissions, which is a notable gap for a query tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences. The first sentence states the purpose, and the second gives usage timing. No redundant or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, and the description does not explain what the returned 'rules' contain (e.g., structure, fields). For a retrieval tool, some hints about the output format would be helpful, but the description is adequate for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes both parameters (files and task_description) with 100% coverage. The description adds no additional semantic meaning or usage details beyond what the schema provides, meeting the baseline but not adding extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns rules for a given set of files or task description. This specific verb-resource combination distinguishes it from siblings like get_rule, which likely fetches a single rule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises calling 'at session start or when switching file context,' providing clear guidance on when to use the tool. It lacks explicit when-not scenarios or alternatives, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agentB

Fetches the full definition of a Cursor agent by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAgent name (as shown in get_context_index)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states 'fetches the full definition', implying read-only. It does not disclose any behavioral traits such as safety, required permissions, or whether the definition is returned in a specific format. The agent is left to infer behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. However, it is very brief; additional context could be provided without losing conciseness, but as is it efficiently conveys the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple nature (1 param, no output schema), the description is incomplete. It does not explain what 'full definition' entails (e.g., structure, fields) or provide any hints about the return value. An agent may not know how to use the result effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description in the schema already explains that 'name' is the agent name from get_context_index. The tool description adds no further semantic information beyond confirming it uses the name. Baseline 3 is appropriate as schema does the work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (fetches), resource (full definition of a Cursor agent), and mechanism (by name). It effectively distinguishes from sibling tools like get_rule or get_skill, which target different resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention context, prerequisites, or exclusions. For example, it does not say 'use this when you need the agent definition' or contrast with get_context_index.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_context_indexA

Returns a lightweight menu of all available context — rules, agents, and skills — with descriptions only, no content.

ParametersJSON Schema
NameRequiredDescriptionDefault
typesNoWhich context types to include. Defaults to all three.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It clearly states it returns descriptions only, not content, which is a key behavioral trait. However, it doesn't mention mutability, permissions, or side effects (likely none).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, zero waste. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple (1 optional param, no output schema). Description adequately conveys the nature of the return value (menu with descriptions only). Could specify format, but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage: the single parameter 'types' is described. Description adds no additional meaning beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb (Returns), the resource (lightweight menu of all available context), and what it includes (rules, agents, skills) and excludes (no content). This differentiates it from sibling tools like get_active_rules or get_agent which return full content.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs. siblings. The description implies it's for an overview, but doesn't say 'use this when you need a menu, not full details'. A contrast with siblings would improve score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ruleA

Fetches the full content of a specific rule by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesRule name (as shown in get_context_index)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavioral traits. It only states it fetches full content but omits whether it is read-only, auth requirements, error behavior (e.g., if rule not found), or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded and efficient. Every word is necessary, no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core purpose but lacks detail on return format or what 'full content' entails. For a simple tool with no output schema, it is minimally adequate but misses opportunities to explain behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage with one parameter 'name' described. The description adds value by specifying the name comes from get_context_index, aiding understanding. While not extensive, this extra context elevates it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches the full content of a specific rule by name, using a specific verb and resource. It distinguishes itself from siblings like get_active_rules and get_context_index by focusing on a single rule identified by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_active_rules or get_context_index. The description lacks context on prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_skillC

Fetches the full content of a skill package.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSkill name (as shown in get_context_index)
include_supporting_filesNoIf true, include supporting file paths

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. The description only states the basic action without explaining side effects, permissions, errors, or return value structure. For a read operation, it is minimally adequate but lacks detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence) and front-loaded with the key action. While concise, it could benefit from slight expansions without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description is inadequate. It does not explain what 'full content' entails, how results are structured, or any potential limitations. A more complete description would include return type and usage notes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for both parameters, so the schema itself provides meaning. The tool description adds no additional parameter context beyond what the schema already offers, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb 'Fetches' and specifies the resource as 'full content of a skill package'. It distinguishes from sibling tools like get_skill_file, which likely fetches individual files, but does not explicitly differentiate from other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The sibling tools are listed but not mentioned in the description, and there is no clarification of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_skill_fileA

Fetches a specific supporting file from within a skill directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesRelative path within the skill directory (e.g., 'scripts/extract-text.py')
skill_nameYesName of the parent skill

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description is minimal but adequate for a simple retrieval. Does not disclose permissions, error handling, or return format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, clearly conveys the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with 2 well-documented parameters. However, missing details on what the response contains (no output schema) and behavior on failure, which could be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with clear descriptions for both parameters (file_path and skill_name). Description adds no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Fetches' and resource 'specific supporting file from within a skill directory', distinguishing it from sibling tools like get_skill which fetches the skill itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., get_skill) or conditions for use. Only a basic description of the action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.1
    • First observedget_active_rules
    • First observedget_agent
    • First observedget_context_index
    • First observedget_rule
    • First observedget_skill
    • First observedget_skill_file

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct entity (rules, agents, skills, context index) with clear parameters. There is no overlap: get_active_rules and get_rule differ by specificity, and get_skill and get_skill_file differ by scope.

Naming Consistency5/5

All tools follow a consistent 'get_' prefix followed by the entity name in snake_case. This uniform pattern makes it easy to predict tool names.

Tool Count5/5

With 6 tools, the set is appropriately scoped for a read-only retrieval server. Each tool serves a necessary function without redundancy or bloat.

Completeness5/5

The tool set covers all primary retrieval operations for the domain: fetching active rules, individual rules, agents, skills, skill files, and listing all available context. No obvious gaps for a read-only interface.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers