Skip to main content
Glama
tomaxtoLuca

cursor-context-mcp

by tomaxtoLuca
README.md
# cursor-context-mcp

**MIT** open-source MCP server: filesystem allowlist + pack-aware Qdrant RAG + optional demo Tool Gateway.

> **Not affiliated with Cursor.** Works with Cursor, LM Studio, and any HTTP MCP host.

## Features

| Tool              | Description                                                |
| ----------------- | ---------------------------------------------------------- |
| `read_file`       | Read UTF-8 text under configured allowlist roots           |
| `list_directory`  | List immediate children of an allowed directory            |
| `search_files`    | Stub (v0.1); use `read_file` + `pack_rag_search`           |
| `pack_rag_search` | Qdrant scroll with mandatory `case_id` + `pack_id` filters |

## vs `@modelcontextprotocol/server-filesystem`

|                            | cursor-context-mcp                   | server-filesystem |
| -------------------------- | ------------------------------------ | ----------------- |
| Path allowlist             | Yes (`CONTEXT_MCP_ALLOWED_ROOTS`)    | Yes               |
| Pack / case ACL RAG        | Yes (`pack_rag_search`)              | No                |
| Tool Gateway audit         | Optional demo registry               | No                |
| Domain packs (legal/condo) | No — see Closed-source sibling below | No                |

## Install

From a standalone clone (repo root = this package):

```bash
git clone https://github.com/tomaxtoLuca/cursor-context-mcp.git && cd cursor-context-mcp
python -m venv .venv
source .venv/bin/activate   # Linux/macOS
# .venv\Scripts\activate    # Windows
pip install -r requirements.txt
```

**Monorepo note:** inside the tomaxto workspace, this package lives at `mcp/cursor-context-mcp/`.

## Run

```bash
python scripts/acceptance_mcp.py   # optional; Qdrant live test skips if down
python server.py                   # http://127.0.0.1:8780/mcp
```

**Qdrant demo seed** (optional):

```bash
docker run -p 6333:6333 qdrant/qdrant
python scripts/seed_demo.py
```

## Cursor config

Add to `.cursor/mcp.json`. The key (`cursor-context`) is a display name you choose; port `8780` is the default for this server, not a universal MCP port.

```json
{
  "mcpServers": {
    "cursor-context": {
      "url": "http://127.0.0.1:8780/mcp"
    }
  }
}
```

Reload MCP in Cursor after starting the server.

## Configuration

| Env                         | Default                                          |
| --------------------------- | ------------------------------------------------ |
| `CONTEXT_MCP_ALLOWED_ROOTS` | `config.yaml` `allowed_roots` (`.` + `fixtures`) |
| `CONTEXT_MCP_HOST` / `PORT` | `127.0.0.1` / `8780`                             |
| `CONTEXT_QDRANT_URL`        | `http://127.0.0.1:6333`                          |
| `CONTEXT_QDRANT_COLLECTION` | `context_pack_demo`                              |
| `CONTEXT_DEFAULT_PACK_ID`   | `demo-pack`                                      |
| `CONTEXT_GATEWAY_REGISTRY`  | `config/gateway_registry.example.json`           |
| `CONTEXT_GATEWAY_ENABLED`   | `true`                                           |

Copy `.env.example` to `.env` for local overrides.

## Closed-source sibling

SIU production extensions (Legal / Condo / Studio packs, HubSpot LOB, siu-rag client) live in the private **`siu-context`** package (tomaxto monorepo). This open kernel does not include those adapters.

## License

MIT — see [LICENSE](./LICENSE).

---

_Last updated: 2026-06-18_