Skip to content

MCP Server

The Dexicon MCP (Model Context Protocol) server lets AI assistants search your Dexicon knowledge base directly.

Installation

Connect Dexicon's MCP server to give your AI coding assistant access to your knowledge base.

MCP URL: https://api.dexicon.ai/mcp/

Cursor

Add to your Cursor MCP settings (.cursor/mcp.json):

json
{
  "mcpServers": {
    "dexicon": {
      "url": "https://api.dexicon.ai/mcp/",
      "transport": "sse",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
Claude Code

Run this command in your terminal:

bash
claude mcp add --transport http dexicon https://api.dexicon.ai/mcp/ \
  --header "Authorization: Bearer YOUR_API_KEY"

If the command above doesn't work, you can manually add the following to your Claude settings file (~/.claude.json):

json
{
  "mcpServers": {
    "dexicon": {
      "type": "http",
      "url": "https://api.dexicon.ai/mcp/",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
VS Code

Add to your VS Code MCP config (.vscode/mcp.json):

json
{
  "servers": {
    "dexicon": {
      "type": "sse",
      "url": "https://api.dexicon.ai/mcp/",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}
Codex

Add to your Codex config (~/.codex/config.toml):

ini
[mcp_servers.dexicon]
url = "https://api.dexicon.ai/mcp/"
http_headers = { "Authorization" = "Bearer YOUR_API_KEY" }
GitHub Copilot

Add to your GitHub Copilot MCP config (~/.copilot/mcp-config.json):

json
{
  "mcpServers": {
    "dexicon": {
      "type": "http",
      "url": "https://api.dexicon.ai/mcp/http",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      },
      "tools": ["*"]
    }
  }
}

MCP Tools Reference

Search & Discovery

search - Semantic search across knowledge, sessions, and documents

Searches knowledge first and automatically falls back to sessions and documents when knowledge results are insufficient. Returns results organized by type.

Parameters:

ParameterTypeRequiredDefaultDescription
querystringYes*-Natural language search query. Required for new searches.
limitnumberNo5Results per page (1-20).
include_summarybooleanNotrueInclude full summary text (100-250 words).
tagsstring[]No-Filter by tags (OR logic). Get valid tags from list_work_topics.
lookback_daysnumberNo-Number of days to look back from now. Mutually exclusive with start_time/end_time.
start_timestringNo-Filter results after this time (ISO 8601 UTC).
end_timestringNo-Filter results before this time (ISO 8601 UTC).
project_idstringNo-Scope search to a specific codebase. Get IDs from list_projects.
emailstringNo-Filter to a specific user's sessions by email address (case-insensitive).
knowledge_typestringNo-Filter knowledge by type: general, bug, standard, or decision.
cursorstringNo-Opaque cursor from previous response for pagination.
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "knowledge": [
    {
      "id": "mem_01ABC...",
      "title": "PostgreSQL connection pooling best practices",
      "content": "Always use connection pooling...",
      "context": "When setting up database connections...",
      "tags": ["database", "postgresql"],
      "importance": 8,
      "similarity": 0.92,
      "created_at": "2025-01-15T10:00:00+00:00"
    }
  ],
  "sessions": [
    {
      "source": "sessions",
      "source_id": "ccs_01ABC...",
      "summary_id": "ssm_01XYZ...",
      "title": "Implemented OAuth2 authentication",
      "preview": "Added JWT token handling...",
      "summary": "Full summary text if include_summary=true...",
      "technologies": ["Python", "FastAPI"],
      "tags": ["auth", "security"],
      "user": {
        "email": "developer@company.com",
        "name": null
      },
      "similarity": 0.87,
      "created_at": "2025-01-15T10:00:00+00:00"
    }
  ],
  "documents": [
    {
      "source": "documents",
      "source_id": "doc_01ABC...",
      "title": "Architecture Overview",
      "preview": "System design document...",
      "similarity": 0.85,
      "created_at": "2025-01-15T10:00:00+00:00"
    }
  ],
  "returned_count": 5,
  "next_cursor": "eyJxdWVyeSI6...",
  "query": "authentication",
  "fallback_triggered": false
}
list_work_topics - Discover what tags exist in recent coding sessions

Call this FIRST before using get_work_by_topic to see valid tags. Returns tags sorted by frequency (most common first).

Parameters:

ParameterTypeRequiredDefaultDescription
cursorstringNo-Opaque cursor from previous response for pagination.
lookback_daysnumberNo30How far back to look (1-90 days).
limitnumberNo20Results per page (1-50).
scopestringNo"team""me" (your sessions only) or "team" (everyone in org).
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "topics": [
    {
      "tag": "authentication",
      "session_count": 12
    },
    {
      "tag": "database",
      "session_count": 8
    }
  ],
  "returned_count": 10,
  "next_cursor": "eyJvIjoy...",
  "lookback_days": 30,
  "scope": "team"
}
get_work_by_topic - Get sessions filtered by a specific topic tag

PRIMARY tool for browsing work by category. Faster than search when you know the topic. Workflow: list_work_topicsget_work_by_topicget_session.

Parameters:

ParameterTypeRequiredDefaultDescription
tagstringYes-Topic to filter by. Get valid tags from list_work_topics first.
cursorstringNo-Opaque cursor from previous response for pagination.
lookback_daysnumberNo30How far back to look (1-90 days).
limitnumberNo10Results per page (1-50).
scopestringNo"team""me" (your sessions only) or "team" (everyone in org).
emailstringNo-Filter to a specific user's sessions by email address (case-insensitive). Overrides scope.
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "sessions": [
    {
      "id": "ssm_01ABC...",
      "session_id": "ccs_01XYZ...",
      "provider": "claude_code",
      "title": "Implemented OAuth2 authentication",
      "preview": "Added JWT token handling and refresh flow...",
      "tags": ["authentication", "security"],
      "technologies": ["Python", "FastAPI"],
      "outcome": "completed",
      "user": {
        "email": "developer@company.com",
        "name": null
      },
      "created_at": "2025-01-15T10:00:00+00:00"
    }
  ],
  "returned_count": 5,
  "next_cursor": "eyJvIjoy...",
  "tag": "authentication",
  "lookback_days": 30,
  "scope": "team"
}
get_recent_work - Get recent sessions sorted by time (newest first)

Chronological view across all topics. For topic-specific browsing, use get_work_by_topic instead.

Parameters:

ParameterTypeRequiredDefaultDescription
cursorstringNo-Opaque cursor from previous response for pagination.
lookback_daysnumberNo30How far back to look (1-90 days).
limitnumberNo10Results per page (1-50).
scopestringNo"team""me" (your sessions only) or "team" (everyone in org).
emailstringNo-Filter to a specific user's sessions by email address (case-insensitive). Overrides scope.
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "sessions": [
    {
      "id": "ssm_01ABC...",
      "session_id": "ccs_01XYZ...",
      "provider": "claude_code",
      "title": "Implemented OAuth2 authentication",
      "preview": "Added JWT token handling and refresh flow...",
      "tags": ["authentication", "security"],
      "technologies": ["Python", "FastAPI"],
      "outcome": "completed",
      "user": {
        "email": "developer@company.com",
        "name": null
      },
      "created_at": "2025-01-15T10:00:00+00:00"
    }
  ],
  "returned_count": 10,
  "next_cursor": "eyJvIjoy...",
  "lookback_days": 30,
  "scope": "team"
}

Sessions & Documents

get_session - Fetch full conversation transcript with all messages

Use after finding sessions via search, get_work_by_topic, or get_recent_work to retrieve the actual messages (human + assistant), not just the summary.

Parameters:

ParameterTypeRequiredDefaultDescription
session_idstringYes-Session ID from search/browse results. Prefix indicates provider: ccs_* (Claude Code), curss_* (Cursor), ghcs_* (GitHub Copilot).
cursorstringNo-Pagination cursor from previous response.
limitnumberNo100Messages per page (1-200).
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "id": "ccs_01ABC...",
  "provider": "claude_code",
  "title": "Implemented OAuth2 authentication",
  "summary": "Full session summary text...",
  "project": {
    "id": "ccp_01XYZ...",
    "name": "my-project"
  },
  "user": {
    "email": "developer@company.com",
    "name": "Kevin"
  },
  "total_messages": 47,
  "messages": [
    {
      "id": "ccm_01ABC...",
      "role": "user",
      "content": "Help me implement OAuth2...",
      "timestamp": "2025-01-15T10:00:00+00:00"
    },
    {
      "id": "ccm_01DEF...",
      "role": "assistant",
      "content": "I'll help you implement OAuth2...",
      "timestamp": "2025-01-15T10:00:05+00:00"
    }
  ],
  "next_cursor": "eyJpZCI6...",
  "has_more": true
}
get_document - Fetch full document content by ID

Use this after search to retrieve the complete text of a document.

Parameters:

ParameterTypeRequiredDescription
document_idstringYesThe document UUID from search results.
api_keystringNoAPI key for authentication. Use when Authorization header is not available.

Response:

json
{
  "document_id": "doc_01ABC...",
  "original_name": "architecture.md",
  "full_text": "Complete document content...",
  "mime_type": "text/markdown",
  "tags": ["architecture", "design"],
  "created_at": "2025-01-15T10:00:00+00:00"
}
list_projects - List projects (codebases) to scope searches

Get project IDs for filtering search to specific repositories.

Parameters:

ParameterTypeRequiredDefaultDescription
cursorstringNo-Opaque cursor from previous response for pagination.
only_my_recent_projectsbooleanNofalseOnly projects you've worked on recently. Good for "what was I working on?" queries.
lookback_daysnumberNo30How far back (1-90) when only_my_recent_projects=true.
limitnumberNo20Results per page (1-100).
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "projects": [
    {
      "project_id": "ccp_01ABC...",
      "name": "my-project",
      "updated_at": "2025-01-15T10:00:00+00:00",
      "session_count": 15,
      "last_ide_activity_at": "2025-01-15T09:30:00+00:00"
    }
  ],
  "returned_count": 10,
  "next_cursor": "eyJvIjoy...",
  "lookback_days": 30,
  "only_my_recent_projects": false
}

Knowledge Management

create_knowledge - Create a new knowledge item

Create a new knowledge item in the knowledge base. Knowledge items store reusable information for AI agents (patterns, decisions, debugging tips, etc.). They support semantic search and knowledge graph linking.

Parameters:

ParameterTypeRequiredDefaultDescription
titlestringYes-Descriptive title (max 250 chars).
contentstringYes-The actual knowledge content (~400 words max recommended).
contextstringYes-WHY/HOW/WHAT context explaining when to use this knowledge.
keywordsstring[]No-Search terms in slug format (lowercase, alphanumeric, dashes).
tagsstring[]No-Category tags in slug format (max 10).
importancenumberNo7Priority 1-10. Higher = more prominent in search.
visibilitystringNo"organization""organization" (everyone) or "user" (private).
linked_memory_idsstring[]No-IDs of related knowledge items for knowledge graph linking.
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "id": "mem_01ABC...",
  "organization_id": "org_01XYZ...",
  "user_id": "usr_01DEF...",
  "title": "PostgreSQL connection pooling best practices",
  "content": "Always use connection pooling with PgBouncer...",
  "context": "When setting up database connections in production...",
  "keywords": ["postgresql", "connection-pooling", "pgbouncer"],
  "tags": ["database", "performance"],
  "importance": 8,
  "visibility": "organization",
  "creator_type": "agent",
  "linked_memory_ids": [],
  "source_type": null,
  "source_id": null,
  "memory_type": "general",
  "is_obsolete": false,
  "created_at": "2025-01-15T10:00:00+00:00",
  "updated_at": "2025-01-15T10:00:00+00:00"
}
get_knowledge - Get a knowledge item by ID

Retrieve full details of a specific knowledge item including content, metadata, and linked items.

Parameters:

ParameterTypeRequiredDescription
memory_idstringYesThe knowledge item ID (mem_* prefix).
api_keystringNoAPI key for authentication. Use when Authorization header is not available.

Response:

json
{
  "id": "mem_01ABC...",
  "organization_id": "org_01XYZ...",
  "user_id": "usr_01DEF...",
  "title": "PostgreSQL connection pooling best practices",
  "content": "Always use connection pooling with PgBouncer...",
  "context": "When setting up database connections in production...",
  "keywords": ["postgresql", "connection-pooling", "pgbouncer"],
  "tags": ["database", "performance"],
  "importance": 8,
  "visibility": "organization",
  "creator_type": "agent",
  "linked_memory_ids": ["mem_02XYZ..."],
  "source_type": null,
  "source_id": null,
  "memory_type": "general",
  "is_obsolete": false,
  "created_at": "2025-01-15T10:00:00+00:00",
  "updated_at": "2025-01-15T10:00:00+00:00"
}
list_knowledge - List knowledge items with filters

Browse knowledge by tags, keywords, importance, or creator type. Results are ordered by importance (high first), then by creation time.

Parameters:

ParameterTypeRequiredDefaultDescription
cursorstringNo-Opaque cursor from previous response for pagination.
limitnumberNo10Results per page (1-50).
tagsstring[]No-Filter by tags (OR logic).
keywordsstring[]No-Filter by keywords (OR logic).
min_importancenumberNo-Only return items with importance >= this value.
include_obsoletebooleanNofalseInclude obsolete items.
creator_typestringNo-Filter by "agent" or "user".
source_typestringNo-Filter by source type: "document" or "session".
source_idstringNo-Filter by source ID (document UUID or session ID).
memory_typestringNo-Filter by type: "general", "bug", "standard", "decision".
api_keystringNo-API key for authentication. Use when Authorization header is not available.

Response:

json
{
  "items": [
    {
      "id": "mem_01ABC...",
      "title": "PostgreSQL connection pooling best practices",
      "content": "Always use connection pooling...",
      "context": "When setting up database connections...",
      "tags": ["database", "performance"],
      "importance": 8,
      "memory_type": "general",
      "created_at": "2025-01-15T10:00:00+00:00"
    }
  ],
  "total": 25,
  "returned_count": 10,
  "next_cursor": "eyJvIjoy..."
}
update_knowledge - Update a knowledge item

Update a knowledge item (PATCH semantics - only provided fields are updated). Only the owner can update. If content, context, or title change, the embedding is regenerated for search.

Parameters:

ParameterTypeRequiredDescription
memory_idstringYesThe knowledge item ID to update (mem_* prefix).
titlestringNoNew title (max 250 chars).
contentstringNoNew content.
contextstringNoNew context.
keywordsstring[]NoNew keywords list.
tagsstring[]NoNew tags list.
importancenumberNoNew importance (1-10).
api_keystringNoAPI key for authentication. Use when Authorization header is not available.

Response:

Returns the updated knowledge item with the same structure as create_knowledge.

delete_knowledge - Delete a knowledge item

Soft delete a knowledge item. Only the owner can delete. The item can be restored by admins.

Parameters:

ParameterTypeRequiredDescription
memory_idstringYesThe knowledge item ID to delete (mem_* prefix).
api_keystringNoAPI key for authentication. Use when Authorization header is not available.

Response:

json
{
  "status": "deleted",
  "memory_id": "mem_01ABC..."
}
list_knowledge_tags - Get tag counts from knowledge items

Returns a dictionary mapping tags to their occurrence count. Useful for discovering what knowledge categories exist.

Parameters:

ParameterTypeRequiredDescription
api_keystringNoAPI key for authentication. Use when Authorization header is not available.

Response:

json
{
  "tags": {
    "database": 15,
    "authentication": 12,
    "performance": 8,
    "api": 6
  }
}

Built by Dexicon