Skip to main content
Glama

Cursor DB MCP Server

by TaylorChen

cursor-db-mcp (MCP Server)

An MCP server for querying, exporting, and analyzing Cursor IDE conversation history from the new workspaceStorage (SQLite) layout.

Highlights

  • Query conversations across all workspaces (SQLite state.vscdb under workspaceStorage)

  • Search and analyze messages, code blocks, and estimated code changes

  • Export data in json, csv, or markdown

  • Workspace utilities to list/filter recent workspaces

  • Diagnostics tool to discover actual storage keys in your environment

Data sources and fallbacks

  • Primary: legacy chat key (if present): workbench.panel.aichat.view.aichat.chatdata

  • Heuristics: if the legacy key is missing, the server scans values for structures containing conversations/messages/assistant/role.

  • Last resort: synthesizes conversations from aiService.generations (user-side prompts). Optionally, it heuristically pairs items from aiService.prompts as assistant replies to improve completeness.

Note: Depending on your Cursor version, assistant replies may not be locally persisted under known keys. The diagnostics tool can help you discover new keys. If you can share a confirmed key/path containing assistant messages, this server can be adapted quickly.

Installation

npm install npm run build

Run MCP Inspector for local testing:

npm run inspector

The Inspector prints a local URL for interactive testing in your browser.

Related MCP server: Cursor DB MCP Server

Configure in Cursor

Basic configuration:

{ "mcp.servers": { "cursor-db": { "command": "cursor-db-mcp", "args": [] } } }

Custom workspaceStorage path:

{ "mcp.servers": { "cursor-db": { "command": "cursor-db-mcp", "args": ["--workspace-path", "/custom/path/to/workspaceStorage"] } } }

Available Tools

  • list_workspaces

    • Input: { recent_days?: number }

    • Returns workspace list with hash, path, projectPath, lastModified

  • get_workspace_conversations

    • Input: { workspace_hash: string }

    • Use list_workspaces to obtain workspace_hash

    • Returns conversations for that workspace

  • get_all_conversations

    • Input: { limit?: number }

    • Returns cross-workspace conversations (sorted by updated time)

  • search_conversations

    • Input: { query: string, limit?: number }

    • Full-text search in titles and messages

  • analyze_conversation

    • Input: { conversation_id: string }

    • Returns stats (message counts, code blocks, estimated code changes)

  • export_conversations

    • Input: { format?: 'json'|'csv'|'markdown', conversation_id?: string, conversation_ids?: string[] }

    • Export all or a subset filtered by conversation_id/conversation_ids

  • analyze_code_statistics

    • Input: { days?: number, group_by?: 'day'|'week'|'month'|'language'|'workspace' }

    • Aggregated metrics across the selected period

  • diagnose_storage

    • Input: { limit?: number }

    • Lists the largest ItemTable keys per workspace to help locate actual chat storage

Ensuring assistant replies in results

  • If your environment has a key containing full conversations (including assistant messages), the server will parse it directly.

  • If not, the server falls back to aiService.generations (user-only prompts) and tries to pair them with aiService.prompts as assistant replies heuristically. This improves completeness but may not perfectly reflect the original assistant responses.

  • To achieve exact assistant outputs, provide the confirmed storage key or path where Cursor persists assistant replies in your version.

Export formats

  • JSON: raw conversations array

  • CSV: one line per conversation with high-level metadata

  • Markdown: per-conversation sections with messages and code blocks

Development

npm install npm run build npm run watch # optional: incremental builds npm run inspector

Notes

  • SQLite access uses sqlite3. On some systems you may need build tools (e.g., Xcode CLT on macOS) installed.

  • Default workspace storage paths:

    • macOS: ~/Library/Application Support/Cursor/User/workspaceStorage

    • Windows: %APPDATA%/Cursor/User/workspaceStorage

    • Linux: ~/.config/Cursor/User/workspaceStorage

Troubleshooting

  • No conversations returned:

    • Use diagnose_storage to inspect keys. If no conversation-like key exists, your Cursor version may not store assistant replies locally.

    • The server will still return synthesized conversations from aiService.generations (user prompts). Provide the real chat key to enable full parsing.

  • Permission/locking errors:

    • Ensure Cursor is not locking the database when scanning. Try closing heavy operations in Cursor.

License

MIT — see LICENSE.

-
security - not tested
A
license - permissive license
-
quality - not tested

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TaylorChen/cursor-db-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server