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):
{
"mcpServers": {
"dexicon": {
"url": "https://api.dexicon.ai/mcp/",
"transport": "sse",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}Claude Code
Run this command in your terminal:
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):
{
"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):
{
"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):
[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):
{
"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:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes* | - | Natural language search query. Required for new searches. |
limit | number | No | 5 | Results per page (1-20). |
include_summary | boolean | No | true | Include full summary text (100-250 words). |
tags | string[] | No | - | Filter by tags (OR logic). Get valid tags from list_work_topics. |
lookback_days | number | No | - | Number of days to look back from now. Mutually exclusive with start_time/end_time. |
start_time | string | No | - | Filter results after this time (ISO 8601 UTC). |
end_time | string | No | - | Filter results before this time (ISO 8601 UTC). |
project_id | string | No | - | Scope search to a specific codebase. Get IDs from list_projects. |
email | string | No | - | Filter to a specific user's sessions by email address (case-insensitive). |
knowledge_type | string | No | - | Filter knowledge by type: general, bug, standard, or decision. |
cursor | string | No | - | Opaque cursor from previous response for pagination. |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
cursor | string | No | - | Opaque cursor from previous response for pagination. |
lookback_days | number | No | 30 | How far back to look (1-90 days). |
limit | number | No | 20 | Results per page (1-50). |
scope | string | No | "team" | "me" (your sessions only) or "team" (everyone in org). |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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_topics → get_work_by_topic → get_session.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
tag | string | Yes | - | Topic to filter by. Get valid tags from list_work_topics first. |
cursor | string | No | - | Opaque cursor from previous response for pagination. |
lookback_days | number | No | 30 | How far back to look (1-90 days). |
limit | number | No | 10 | Results per page (1-50). |
scope | string | No | "team" | "me" (your sessions only) or "team" (everyone in org). |
email | string | No | - | Filter to a specific user's sessions by email address (case-insensitive). Overrides scope. |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
cursor | string | No | - | Opaque cursor from previous response for pagination. |
lookback_days | number | No | 30 | How far back to look (1-90 days). |
limit | number | No | 10 | Results per page (1-50). |
scope | string | No | "team" | "me" (your sessions only) or "team" (everyone in org). |
email | string | No | - | Filter to a specific user's sessions by email address (case-insensitive). Overrides scope. |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
session_id | string | Yes | - | Session ID from search/browse results. Prefix indicates provider: ccs_* (Claude Code), curss_* (Cursor), ghcs_* (GitHub Copilot). |
cursor | string | No | - | Pagination cursor from previous response. |
limit | number | No | 100 | Messages per page (1-200). |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Description |
|---|---|---|---|
document_id | string | Yes | The document UUID from search results. |
api_key | string | No | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
cursor | string | No | - | Opaque cursor from previous response for pagination. |
only_my_recent_projects | boolean | No | false | Only projects you've worked on recently. Good for "what was I working on?" queries. |
lookback_days | number | No | 30 | How far back (1-90) when only_my_recent_projects=true. |
limit | number | No | 20 | Results per page (1-100). |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
title | string | Yes | - | Descriptive title (max 250 chars). |
content | string | Yes | - | The actual knowledge content (~400 words max recommended). |
context | string | Yes | - | WHY/HOW/WHAT context explaining when to use this knowledge. |
keywords | string[] | No | - | Search terms in slug format (lowercase, alphanumeric, dashes). |
tags | string[] | No | - | Category tags in slug format (max 10). |
importance | number | No | 7 | Priority 1-10. Higher = more prominent in search. |
visibility | string | No | "organization" | "organization" (everyone) or "user" (private). |
linked_memory_ids | string[] | No | - | IDs of related knowledge items for knowledge graph linking. |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Description |
|---|---|---|---|
memory_id | string | Yes | The knowledge item ID (mem_* prefix). |
api_key | string | No | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
cursor | string | No | - | Opaque cursor from previous response for pagination. |
limit | number | No | 10 | Results per page (1-50). |
tags | string[] | No | - | Filter by tags (OR logic). |
keywords | string[] | No | - | Filter by keywords (OR logic). |
min_importance | number | No | - | Only return items with importance >= this value. |
include_obsolete | boolean | No | false | Include obsolete items. |
creator_type | string | No | - | Filter by "agent" or "user". |
source_type | string | No | - | Filter by source type: "document" or "session". |
source_id | string | No | - | Filter by source ID (document UUID or session ID). |
memory_type | string | No | - | Filter by type: "general", "bug", "standard", "decision". |
api_key | string | No | - | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Description |
|---|---|---|---|
memory_id | string | Yes | The knowledge item ID to update (mem_* prefix). |
title | string | No | New title (max 250 chars). |
content | string | No | New content. |
context | string | No | New context. |
keywords | string[] | No | New keywords list. |
tags | string[] | No | New tags list. |
importance | number | No | New importance (1-10). |
api_key | string | No | API 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:
| Parameter | Type | Required | Description |
|---|---|---|---|
memory_id | string | Yes | The knowledge item ID to delete (mem_* prefix). |
api_key | string | No | API key for authentication. Use when Authorization header is not available. |
Response:
{
"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:
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | No | API key for authentication. Use when Authorization header is not available. |
Response:
{
"tags": {
"database": 15,
"authentication": 12,
"performance": 8,
"api": 6
}
}