Skip to main content
Glama
vltansky

Cursor Conversations MCP Server

by vltansky

Cursor Chat History MCP

Connect your Cursor conversations to your git history.

Why?

You make a commit. Weeks later you wonder: "Why did I write it this way?"

The git message says fix auth bug but the real context - the debugging session, the alternatives considered, the AI suggestions - lives in a Cursor conversation you'll never find again.

This MCP server automatically links your Cursor conversations to git commits. When you revisit code, the AI assistant can pull up the original discussion.

Related MCP server: AI Conversation Logger

Quick Start

Add to .cursor/mcp.json:

{
  "mcpServers": {
    "cursor-chat-history": {
      "command": "npx",
      "args": ["-y", "--package=cursor-chat-history-mcp", "cursor-chat-history-mcp"]
    }
  }
}

That's it. Hooks install automatically on first use.

What You Can Do

Find Context for Code

"What was the context behind commit abc123?"
"Find the conversation that led to this fix"
"Show discussions about auth.ts from the last month"

Search Your Chat History

"Find all debugging sessions about performance"
"Search conversations mentioning useState"
"List recent conversations in this project"

Extract Patterns

"Create TypeScript guidelines from my actual usage"
"Extract error handling patterns from my conversations"
"Summarize my React patterns from chat history"

Available Tools

Git Linker

Tool

Purpose

get_file_context

Get conversations and commits related to a file

get_commit_conversations

Find conversations linked to a commit

list_conversation_commits

Find commits linked to a conversation

link_conversation_commit

Manually link conversation ↔ commit

Chat History

Tool

Purpose

list_conversations

Browse with filters (project, keywords, files)

get_conversation

Get full conversation content

search_conversations

Multi-keyword and pattern search

get_conversation_analytics

Usage patterns, file activity, language stats

Privacy

  • 100% local - No external services, no API keys

  • Your data stays on disk - SQLite databases only

  • Open source - Audit the code yourself


How It Works

Hooks are installed automatically when the MCP server starts:

  • Cursor hooks (~/.cursor/hooks.json) - capture file edits and session ends

  • Git post-commit hook (current repo) - link commits to conversations

When you commit, the system finds related conversations using:

  • File overlap (70%): Commits touching files discussed in conversations

  • Recency (30%): Conversations from the last 14 days

Efficient Context Retrieval

Large conversations aren't loaded directly into context. Instead:

  1. Use get_file_context with keywords to find relevant conversations

  2. Call get_conversation - writes to ~/.cursor-chat-history/context/conversations/<id>.md

  3. Use Read/Grep tools to navigate the markdown file efficiently

CLI Commands

# Query links
npx cursor-chat-history-mcp link list-conversation-links --conversation <id>
npx cursor-chat-history-mcp link get-commit-links --hash <commit-hash>

# Manual linking
npx cursor-chat-history-mcp link manual --conversation <id> --commit <hash>

Database Locations

Database

macOS

Windows

Linux

Cursor chats

~/Library/Application Support/Cursor/User/globalStorage/state.vscdb

%APPDATA%/Cursor/...

~/.config/Cursor/...

Git links

~/Library/Application Support/CursorChatHistory/links.sqlite

%APPDATA%/CursorChatHistory/...

~/.local/share/CursorChatHistory/...

Context files

~/.cursor-chat-history/context/conversations/

same

same

Override with CURSOR_DB_PATH or CURSOR_LINKS_DB_PATH.

Tool Reference

list_conversations

  • limit (default: 10) - Number of results

  • projectPath - Filter by project

  • keywords - Search keywords

  • hasCodeBlocks - Filter by code presence

get_conversation

  • conversationId (required) - Conversation ID

  • summaryOnly - Return summary only (saves context)

search_conversations

  • query - Text search

  • keywords + keywordOperator ('AND'/'OR') - Multi-keyword

  • likePattern - SQL LIKE patterns

get_conversation_analytics

  • scope - 'all', 'recent', 'project'

  • projectPath - Filter by project

  • includeBreakdowns - ['files', 'languages', 'temporal', 'size']

get_file_context

  • filePath (required) - File to get context for

  • keywords - Filter by keywords (e.g., ["JWT", "auth"]) - returns matching excerpts

  • limit - Max results (default: 5)

list_conversation_commits

  • conversationId - Filter by conversation

  • projectPath - Filter by project

  • filePath - Filter by file

get_commit_conversations

  • commitHash (required) - Git commit hash

link_conversation_commit

  • conversationId (required)

  • commitHash (required)

  • confidence - Link confidence (0-1)

Development

git clone https://github.com/vltansky/cursor-chat-history-mcp
cd cursor-chat-history-mcp
yarn install
yarn build

Supported AI Assistants

Assistant

Status

Notes

Cursor

✅ Full

Chat, Composer, Agent modes

Claude Code

✅ Full

VS Code extension

Cline/Roo/Kilo

✅ Full

JSON task-based storage

Windsurf

✅ Full

SQLite (same pattern as Cursor)

GitHub Copilot Chat

✅ Full

VS Code native

Roadmap

  • Knowledge graph extraction - Extract entities and relationships from conversations (learn more)

  • Multi-agent support - Cline, Windsurf, Copilot Chat

  • Quality scoring - Prioritize conversations with solutions

  • Natural time filters - "last week", "yesterday"

  • Topic clustering - Group by detected themes

  • Semantic search - Find similar conversations via embeddings

Technical Notes

  • Supports legacy and modern Cursor conversation formats

  • Uses ROWID for chronological ordering (UUIDs aren't chronological)

  • Close Cursor to avoid database lock issues

  • See docs/SPEC.md for git linker specification

License

MIT

Available Tools

8 tools
export_conversation_dataA

Export chat data in various formats (JSON, CSV, Graph) for external analysis, visualization, or integration with other tools. TIP: Use filters.projectPath to export only project-specific conversations for focused analysis of a particular codebase. Use this to create datasets for machine learning, generate reports for stakeholders, prepare data for visualization tools like Gephi or Tableau, or backup chat data in structured formats.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversationIdsNoSpecific conversation IDs to export (if not provided, exports all conversations)
formatNoExport format: JSON for structured data, CSV for spreadsheets, Graph for network analysisjson
includeContentNoInclude full conversation content in the export
includeRelationshipsNoInclude relationship data between conversations
flattenStructureNoFlatten nested structures for easier processing
filtersNoFilters to apply when selecting conversations to export
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's function and use cases but lacks details on permissions, rate limits, side effects (e.g., whether it's read-only or generates files), or error handling. It adds value by explaining the purpose and applications but misses operational constraints.

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 appropriately sized and front-loaded, starting with the core purpose and formats, followed by a TIP and use cases. Every sentence adds value (e.g., explaining applications), but it could be slightly more concise by integrating the TIP into the main flow rather than as a separate note.

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?

Given the tool's complexity (7 parameters, nested objects, no output schema) and lack of annotations, the description is adequate but incomplete. It covers purpose and usage well but does not address output behavior (e.g., what is returned or how data is delivered), error conditions, or performance aspects, leaving gaps for an AI agent to infer.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter-specific semantics beyond the schema, only emphasizing 'filters.projectPath' in a TIP. It does not explain parameter interactions or provide additional syntax/format details, aligning with the baseline score when schema coverage is high.

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's purpose with specific verb ('Export') and resource ('chat data'), and distinguishes it from siblings by specifying it exports data for external analysis/visualization/integration, unlike tools like 'get_conversation' (fetch single) or 'list_conversations' (list metadata). The mention of formats (JSON, CSV, Graph) further clarifies its unique role.

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 provides clear context for when to use this tool (e.g., for machine learning datasets, stakeholder reports, visualization tools, or backups) and includes a TIP recommending 'filters.projectPath' for project-specific conversations. However, it does not explicitly state when NOT to use it or name alternatives among siblings (e.g., 'extract_conversation_elements' might overlap for specific elements).

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

extract_conversation_elementsA

Extract specific elements from conversations such as file references, code blocks, programming languages, folder paths, metadata, or conversation structure. Use this to build knowledge bases, analyze code patterns, extract reusable snippets, understand project file usage, or prepare data for further analysis and documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversationIdsNoSpecific conversation IDs to extract elements from (if not provided, extracts from all conversations)
elementsNoTypes of elements to extract from conversations
includeContextNoInclude surrounding context for extracted elements
groupByNoHow to group the extracted elements in the outputconversation
filtersNoFilters to apply when extracting elements
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the tool's function and use cases but lacks details on behavioral traits such as performance characteristics, rate limits, error handling, or authentication requirements. The description adds value by explaining the tool's purpose but does not fully compensate for the absence of annotations.

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 appropriately sized and front-loaded, starting with the core purpose and following with use cases. Both sentences earn their place by clarifying the tool's function and applications. It could be slightly more concise by integrating the use cases more tightly, but overall it is well-structured and efficient.

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?

Given the tool's complexity (6 parameters, nested objects) and the absence of both annotations and an output schema, the description is somewhat incomplete. It explains what the tool does and why to use it but does not address behavioral aspects or output format, leaving gaps that could hinder an AI agent's understanding of how to invoke it 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?

The input schema has 100% description coverage, so the schema already documents all parameters thoroughly. The description does not add any parameter-specific information beyond what the schema provides, such as explaining the semantics of 'elements' or 'filters' in more detail. Baseline score of 3 is appropriate when schema coverage is high.

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's purpose with specific verbs ('extract specific elements from conversations') and resources ('conversations'), listing concrete element types like file references, code blocks, and metadata. It distinguishes from sibling tools like 'export_conversation_data' or 'get_conversation' by focusing on element extraction rather than full export or retrieval.

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 provides clear context for when to use this tool ('to build knowledge bases, analyze code patterns, extract reusable snippets, understand project file usage, or prepare data for further analysis and documentation'), which helps differentiate it from siblings. However, it does not explicitly state when not to use it or name specific alternatives among the sibling tools.

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

get_conversationA

Retrieves the complete content of a specific Cursor conversation including all messages, code blocks, file references, title, and AI summary. WORKFLOW TIP: Use conversation IDs from list_conversations, search_conversations, or analytics breakdowns (files/languages arrays contain conversation IDs). Use summaryOnly=true to get enhanced summary data without full message content when you need to conserve context.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversationIdYesConversation ID from list_conversations, search_conversations, or analytics breakdowns
summaryOnlyNoReturn only enhanced summary data without full message content
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool retrieves (complete content including specific elements) and mentions a performance consideration (summaryOnly to conserve context), but lacks details on permissions, rate limits, error handling, or response structure. It adds some context but is incomplete for a tool with no annotation coverage.

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 appropriately sized and front-loaded: the first sentence clearly states the purpose, followed by a workflow tip that adds practical guidance without redundancy. Every sentence earns its place by providing actionable information, with no wasted words or unnecessary elaboration.

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?

Given the tool's moderate complexity (retrieving conversation data with optional filtering), no annotations, and no output schema, the description is mostly complete. It covers the purpose, usage guidelines, and key parameters, but lacks details on behavioral aspects like error handling or response format. It compensates well but has minor gaps in transparency.

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 description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it mentions using conversation IDs from specific sources (implied in the schema) and explains the purpose of summaryOnly=true for context conservation, but doesn't provide additional syntax or format details. Baseline 3 is appropriate when the schema does the heavy lifting.

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 specific action ('Retrieves') and resource ('complete content of a specific Cursor conversation'), listing concrete components like messages, code blocks, file references, title, and AI summary. It distinguishes from siblings by specifying this tool retrieves full conversation content, unlike list_conversations (which lists IDs) or get_conversation_analytics (which provides analytics).

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: it specifies obtaining conversation IDs from list_conversations, search_conversations, or analytics breakdowns, and includes a 'WORKFLOW TIP' for using summaryOnly=true to conserve context. It implicitly distinguishes from siblings by not suggesting alternatives for retrieving full conversation content.

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

get_conversation_analyticsA

Get comprehensive analytics and statistics about Cursor chats including usage patterns, file activity, programming language distribution, and temporal trends. BEST PRACTICE: Use projectPath parameter for project-specific analytics - this analyzes only conversations that worked on files in that project, providing much more relevant insights for understanding coding patterns, file usage, and development activity within a specific codebase. WORKFLOW TIP: Always include "files" and "languages" in breakdowns - these contain conversation IDs in their arrays that you can immediately use with get_conversation tool. Use includeConversationDetails=true when you need the full conversation ID list and basic metadata for follow-up analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoAnalysis scope: all conversations, recent only, or project-specific. Use "project" with projectPath for focused project analysis.all
projectPathNo**HIGHLY RECOMMENDED** Project/codebase name (e.g., "my-app") or full path for project-scoped analysis. When provided, analyzes only conversations that worked on files in that project, giving much more relevant insights about coding patterns and development activity.
recentDaysNoNumber of recent days to analyze (1-365)
includeBreakdownsNoTypes of breakdowns to include in the analysis. IMPORTANT: "files" and "languages" breakdowns contain conversation IDs in their arrays - use these for follow-up analysis!
includeConversationDetailsNoInclude full conversation ID list and basic metadata (increases response size significantly)
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: it explains that using projectPath 'analyzes only conversations that worked on files in that project,' mentions that includeConversationDetails 'increases response size significantly,' and provides workflow tips for efficient usage. However, it doesn't address potential rate limits, authentication needs, or error conditions, leaving some gaps in behavioral context.

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 well-structured with clear sections (purpose, best practice, workflow tip) and uses bold text for emphasis. It's appropriately sized for a tool with 6 parameters and no annotations, though it could be slightly more concise by avoiding repetition of schema details (e.g., projectPath explanation appears in both description and schema). Every sentence adds value, but minor trimming is possible.

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?

Given the tool's complexity (6 parameters, no output schema, no annotations), the description does a good job of providing context: it explains the tool's purpose, usage guidelines, and key behavioral aspects. However, it lacks details on output structure (since no output schema exists) and doesn't fully cover all behavioral traits like error handling or performance considerations, leaving room for improvement in completeness.

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 description adds some semantic context beyond the input schema, such as emphasizing projectPath as 'HIGHLY RECOMMENDED' and explaining its impact on relevance. However, with 100% schema description coverage, the schema already documents all parameters thoroughly (e.g., scope, recentDays, includeBreakdowns). The description reinforces but doesn't significantly expand on parameter meanings, meeting the baseline for high schema coverage.

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's purpose: 'Get comprehensive analytics and statistics about Cursor chats including usage patterns, file activity, programming language distribution, and temporal trends.' It specifies the verb ('Get') and resource ('analytics and statistics about Cursor chats') with detailed scope, distinguishing it from siblings like 'list_conversations' or 'get_conversation' that focus on individual conversations rather than aggregated analytics.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines: it includes a 'BEST PRACTICE' section recommending the projectPath parameter for project-specific analytics and a 'WORKFLOW TIP' advising to always include 'files' and 'languages' in breakdowns for follow-up analysis with get_conversation. It also mentions when to use includeConversationDetails=true, offering clear alternatives and context for effective tool selection.

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

get_system_infoA

Get system information and utilities for AI assistants. Provides current date, timezone, and other helpful context that AI assistants may not have access to. Use this when you need reference information for date filtering, time-based queries, or other system context.

ParametersJSON Schema
NameRequiredDescriptionDefault
infoNoType of system information to retrieve: "date" for current date only, "timezone" for timezone info, "all" for everythingall

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It describes what information is available (date, timezone, other context) but doesn't specify format, precision, or limitations. It mentions this is 'helpful context that AI assistants may not have access to' which hints at its utility, but lacks details on rate limits, authentication needs, or error conditions.

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 efficiently structured in two sentences: first stating the purpose and scope, then providing clear usage guidelines. Every element serves a purpose with no redundant information, making it easy to parse and understand quickly.

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?

For a simple read-only utility tool with 1 parameter and no output schema, the description provides good context about what information is available and when to use it. However, without annotations or output schema, it could benefit from more detail about the format and scope of 'other helpful context' returned.

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 description coverage is 100%, so the schema fully documents the single parameter with enum values and default. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for adequate coverage through structured data alone.

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's purpose with specific verbs ('Get system information and utilities') and resources ('current date, timezone, and other helpful context'). It distinguishes itself from sibling tools (all conversation-related) by focusing on system-level information rather than conversation data.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'Use this when you need reference information for date filtering, time-based queries, or other system context.' It clearly differentiates from sibling tools by addressing a completely different domain (system utilities vs. conversation management).

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

list_conversationsA

Lists Cursor chats with summaries, titles, and metadata ordered by recency. HIGHLY RECOMMENDED: Use projectPath parameter to filter conversations by specific project/codebase - this dramatically improves relevance by finding conversations that actually worked on files in that project. Returns conversation IDs for use with get_conversation tool. WORKFLOW TIP: Start with projectPath filtering for project-specific analysis, then call get_conversation with specific IDs from results. Includes AI-generated summaries by default. Supports date range filtering (YYYY-MM-DD format).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of conversations to return (1-100)
minLengthNoMinimum conversation length in characters to include
hasCodeBlocksNoFilter to conversations that contain code blocks
keywordsNoFilter conversations containing any of these exact keywords (literal text matching)
projectPathNo**RECOMMENDED** Filter conversations by project/codebase name (e.g., "my-app") or full path (e.g., "/Users/name/Projects/my-app"). This finds conversations that actually worked on files in that project, dramatically improving relevance for project-specific analysis.
filePatternNoFilter conversations mentioning files matching this pattern (e.g., "*.tsx")
relevantFilesNoFilter conversations that reference any of these specific files
startDateNoStart date for filtering (YYYY-MM-DD). Note: Timestamps may be unreliable.
endDateNoEnd date for filtering (YYYY-MM-DD). Note: Timestamps may be unreliable.
includeEmptyNoInclude conversations with no messages
includeAiSummariesNoInclude AI-generated conversation summaries
includeRelevanceScoreNoInclude relevance scores when filtering by projectPath
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behaviors: ordering ('ordered by recency'), default inclusion of AI-generated summaries, date format requirements ('YYYY-MM-DD format'), and a warning about timestamp reliability. It doesn't mention pagination, rate limits, or authentication needs, but covers substantial operational context.

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 appropriately sized and front-loaded with core functionality. The bold recommendation about projectPath is prominent, and the workflow tip provides practical guidance. Some sentences could be more concise, but overall it's well-structured with zero wasted content.

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?

For a 13-parameter tool with no annotations and no output schema, the description provides substantial context about usage patterns, filtering importance, and relationship to other tools. It doesn't describe the return format in detail (though mentions conversation IDs), but given the rich parameter documentation in the schema, it's reasonably complete for guiding effective tool selection.

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 description coverage is 100%, so the baseline is 3. The description adds some value by emphasizing the importance of 'projectPath' parameter and providing workflow context, but doesn't significantly enhance understanding of individual parameters beyond what the schema already documents thoroughly.

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 verb ('Lists') and resource ('Cursor chats') with specific attributes ('summaries, titles, and metadata ordered by recency'). It distinguishes from siblings like 'search_conversations' by emphasizing comprehensive listing with filtering rather than search functionality, and explicitly mentions the relationship to 'get_conversation' tool.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool ('HIGHLY RECOMMENDED: Use projectPath parameter...'), includes a workflow tip ('Start with projectPath filtering... then call get_conversation'), and implicitly distinguishes from alternatives like 'search_conversations' by focusing on filtered listing rather than search operations.

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

search_conversationsA

Searches through Cursor chat content using exact text matching (NOT semantic search) to find relevant discussions. WARNING: For project-specific searches, use list_conversations with projectPath instead of this tool! This tool is for searching message content, not project filtering.

WHEN TO USE THIS TOOL:

  • Searching for specific technical terms in message content (e.g., "useState", "async/await")

  • Finding conversations mentioning specific error messages

  • Searching for code patterns or function names

WHEN NOT TO USE THIS TOOL:

  • ❌ DON'T use query="project-name" - use list_conversations with projectPath instead

  • ❌ DON'T search for project names in message content

  • ❌ DON'T use this for project-specific filtering

Search methods (all use exact/literal text matching):

  1. Simple text matching: Use query parameter for literal string matching (e.g., "react hooks")

  2. Multi-keyword: Use keywords array with keywordOperator for exact matching

  3. LIKE patterns: Advanced pattern matching with SQL wildcards (% = any chars, _ = single char)

  4. Date range: Filter by message timestamps (YYYY-MM-DD format)

IMPORTANT: When using date filters, call get_system_info first to know today's date.

Examples: likePattern="%useState(%" for function calls, keywords=["typescript","interface"] with AND operator.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoExact text matching - searches for literal string occurrences in MESSAGE CONTENT (e.g., "react hooks", "useState", "error message"). ❌ DON'T use for project names - use list_conversations with projectPath instead!
keywordsNoArray of keywords for exact text matching - use with keywordOperator to find conversations with specific combinations
keywordOperatorNoHow to combine keywords: "AND" = all keywords must be present, "OR" = any keyword can be presentOR
likePatternNoSQL LIKE pattern for advanced searches - use % for any characters, _ for single character. Examples: "%useState(%" for function calls, "%.tsx%" for file types
startDateNoStart date for search (YYYY-MM-DD). Note: Timestamps may be unreliable.
endDateNoEnd date for search (YYYY-MM-DD). Note: Timestamps may be unreliable.
searchTypeNoFocus search on specific content types. Use "project" for project-specific searches that leverage file path context.all
maxResultsNoMaximum number of conversations to return
includeCodeNoInclude code blocks in search results
outputModeNoOutput format: "json" for formatted JSON (default), "compact-json" for minified JSONjson

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains the search method (exact text matching, NOT semantic search), provides warnings about unreliable timestamps, and mentions the need to call 'get_system_info' for date context. However, it doesn't fully describe return format or pagination behavior, leaving some gaps.

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 well-structured with clear sections (warning, usage guidelines, search methods, examples) and uses formatting effectively. While comprehensive, some sentences could be more concise, and the warning is repeated multiple times, slightly reducing efficiency.

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?

For a 10-parameter search tool with no annotations and no output schema, the description does an excellent job covering purpose, usage, and parameter semantics. It provides concrete examples and warnings. The main gap is the lack of information about return values or result format, which would be helpful given the absence of an output schema.

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?

Schema description coverage is 100%, so the baseline is 3. The description adds significant value by explaining the four search methods (simple text matching, multi-keyword, LIKE patterns, date range) with concrete examples and clarifying the relationship between parameters. This goes well beyond what the schema provides in isolation.

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 'searches through Cursor chat content using exact text matching' and distinguishes it from sibling tools by explicitly warning against using it for project-specific searches, directing users to 'list_conversations with projectPath instead'. This provides specific verb+resource+scope and clear sibling differentiation.

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

Usage Guidelines5/5

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

The description includes explicit 'WHEN TO USE THIS TOOL' and 'WHEN NOT TO USE THIS TOOL' sections with concrete examples and clear exclusions. It names the alternative tool ('list_conversations') and provides specific guidance on what queries to avoid, making it highly actionable for an AI agent.

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

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between list_conversations and search_conversations, as both can be used to find conversations, which might cause confusion despite the detailed warnings. The other tools like export, extract, find_related, get, and analytics are clearly differentiated in their functions.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with clear verb_noun structures (e.g., export_conversation_data, list_conversations, get_system_info). This uniformity makes the tool set predictable and easy to navigate for an agent.

Tool Count5/5

With 8 tools, the count is well-suited for the server's purpose of managing and analyzing Cursor conversations. It covers core operations like listing, searching, retrieving, analyzing, exporting, and extracting, without being overwhelming or insufficient for the domain.

Completeness4/5

The tool set provides comprehensive coverage for conversation analysis, including CRUD-like operations (list, get, search) and advanced features (analytics, export, extraction, finding related). A minor gap is the lack of tools for modifying or deleting conversations, but this is likely intentional for a read-only analysis server.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Provides AI assistants with persistent memory of your project architecture, development history, and technical decisions, allowing them to give context-aware coding help without needing repeated explanations.
    16
    61
    2
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI to automatically search, retrieve, and organize your Cursor chat history across sessions. Supports tagging, nicknames, project-scoped search, and full-text search to maintain context between conversations.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables Claude Code to search and retrieve past chat history from Claude.ai exports and Claude Code sessions, allowing the AI to reference previous conversations and decisions.
    MIT

Latest Blog Posts

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/vltansky/cursor-chat-history-mcp'

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