This is a local knowledge base with semantic reasoning built in. It captures decisions, fixes, lessons, and research into an RDF graph with an OWL-RL ontology, then runs entity extraction, relationship inference, and hybrid retrieval over them. The 22 MCP tools cover search, context briefings, entity dossiers, graph queries, and pipeline controls. It runs as a single HTTP server that owns the graph store, so your CLI, dashboard, and Claude Desktop all hit the same data. Install spins up background services on macOS and Linux. Useful if you want persistent memory across conversations with automatic classification and reasoning, or if you're building an agent that needs to accumulate structured knowledge over time.
Public tool metadata for what this MCP can expose to an agent.
listAllEntitiesList and filter catalog entities with support for pagination, search, and various filters including groups, types, owners, and git repositories. If the client is trying to fetch data for teams, use 'type': 'team' in these APIs.16 paramsList and filter catalog entities with support for pagination, search, and various filters including groups, types, owners, and git repositories. If the client is trying to fetch data for teams, use 'type': 'team' in these APIs.
pageintegerquerystringtypesarraygroupsarrayownersarraycontextstringpageSizeintegerincludeLinksbooleanincludeOwnersbooleanhierarchyDepthstringgitRepositoriesarrayincludeArchivedbooleanincludeMetadatabooleanincludeNestedFieldsarrayincludeSlackChannelsbooleanincludeHierarchyFieldsarraylistEntityDescriptorsCortex Catalog API - Access and manage your service catalog, teams, domains, and resources5 paramsCortex Catalog API - Access and manage your service catalog, teams, domains, and resources
pageintegeryamlbooleantypesarraycontextstringpageSizeintegerlistDependenciesForEntityList all dependencies for an entity including both incoming (who depends on this service) and outgoing (what this service depends on) relationships. Essential for understanding service interactions, planning changes, and assessing blast radius6 paramsList all dependencies for an entity including both incoming (who depends on this service) and outgoing (what this service depends on) relationships. Essential for understanding service interactions, planning changes, and assessing blast radius
pageintegercontextstringpageSizeintegercallerTagstringincludeIncomingbooleanincludeOutgoingbooleangetDependencyGet specific dependency details between two entities including method, path, and metadata. Useful for understanding the nature of the relationship, API contracts, and communication patterns between services5 paramsGet specific dependency details between two entities including method, path, and metadata. Useful for understanding the nature of the relationship, API contracts, and communication patterns between services
pathstringmethodstringcontextstringcalleeTagstringcallerTagstringgetEntityDetailsRetrieve comprehensive details about a specific entity including its metadata, ownership, hierarchies, and relationships. This is the primary method for getting complete information about services, teams, or domains.5 paramsRetrieve comprehensive details about a specific entity including its metadata, ownership, hierarchies, and relationships. This is the primary method for getting complete information about services, teams, or domains.
contextstringtagOrIdstringincludeOwnersbooleanhierarchyDepthstringincludeHierarchyFieldsarraygetCustomDataForEntityList all custom data key-value pairs associated with an entity. Retrieve metadata, configuration settings, and custom attributes stored for services, resources, or domains. Supports pagination for entities with large amounts of custom data4 paramsList all custom data key-value pairs associated with an entity. Retrieve metadata, configuration settings, and custom attributes stored for services, resources, or domains. Supports pagination for entities with large amounts of custom data
pageintegercontextstringtagOrIdstringpageSizeintegergetCustomDataForEntityByKeyRetrieve a specific custom data value by key for an entity. Efficiently access individual metadata attributes, configuration values, or custom properties without fetching all custom data3 paramsRetrieve a specific custom data value by key for an entity. Efficiently access individual metadata attributes, configuration values, or custom properties without fetching all custom data
keystringcontextstringtagOrIdstringlistCustomEventsForEntityList custom events for an entity with optional filtering by type and time range. Supports pagination and filtering by event type, start time, and end time to retrieve historical event data8 paramsList custom events for an entity with optional filtering by type and time range. Supports pagination and filtering by event type, start time, and end time to retrieve historical event data
pageintegertypestringcontextstringendTimestringtagOrIdstringpageSizeintegerstartTimestringtimestampstringgetCustomEventForEntityByUuidRetrieve a specific custom event by its UUID. Returns event details including title, description, timestamp, type, and any custom data associated with the event3 paramsRetrieve a specific custom event by its UUID. Returns event details including title, description, timestamp, type, and any custom data associated with the event
uuidstringcontextstringtagOrIdstringgetDeploysForEntityList all deployments for a specific catalog entity. Returns deployment history including timestamps, environments, SHAs, and deployment types in paginated format4 paramsList all deployments for a specific catalog entity. Returns deployment history including timestamps, environments, SHAs, and deployment types in paginated format
pageintegercontextstringtagOrIdstringpageSizeintegergetCurrentOncallForEntityRetrieve the current on-call personnel for an entity in real-time. Shows who is actively responsible for incident response, including primary and secondary on-call, contact information, and rotation schedules2 paramsRetrieve the current on-call personnel for an entity in real-time. Shows who is actively responsible for incident response, including primary and secondary on-call, contact information, and rotation schedules
contextstringtagOrIdstringgetEntityDescriptorCortex Catalog API - Access and manage your service catalog, teams, domains, and resources3 paramsCortex Catalog API - Access and manage your service catalog, teams, domains, and resources
yamlbooleancontextstringtagOrIdstringlistEntityDestinationsForRelationshipTypeList all destinations for a certain relationship type & entity. Use the listRelationshipTypes tool to find the relevant relationshipTypeTag.5 paramsList all destinations for a certain relationship type & entity. Use the listRelationshipTypes tool to find the relevant relationshipTypeTag.
depthstringcontextstringtagOrIdstringincludeArchivedbooleanrelationshipTypeTagstringlistEntitySourcesForRelationshipTypeList all sources for a certain relationship type & entity. Use the listRelationshipTypes tool to find the relevant relationshipTypeTag.5 paramsList all sources for a certain relationship type & entity. Use the listRelationshipTypes tool to find the relevant relationshipTypeTag.
depthstringcontextstringtagOrIdstringincludeArchivedbooleanrelationshipTypeTagstringgetCustomMetricDataRetrieve custom metric data points for an entity. Returns paginated time-series data for a specific custom metric, with optional filtering by date range to analyze trends and patterns7 paramsRetrieve custom metric data points for an entity. Returns paginated time-series data for a specific custom metric, with optional filtering by date range to analyze trends and patterns
pageintegercontextstringendDatestringtagOrIdstringpageSizeintegerstartDatestringcustomMetricKeystringqueryPointInTimeMetricsExecute point-in-time queries for one or more engineering metrics. Returns current metric values for specified time periods, with support for batch queries and optional period-over-period comparisons. Time range (startTime/endTime) cannot exceed 6 months (180 days). PREREQUISI...14 paramsExecute point-in-time queries for one or more engineering metrics. Returns current metric values for specified time periods, with support for batch queries and optional period-over-period comparisons. Time range (startTime/endTime) cannot exceed 6 months (180 days). PREREQUISI...
limitintegercontextstringendTimestringfiltersarraygroupByarraymetricsarrayorderByarraynextPagestringstartTimestringcomparisonvaluenestedGroupByarraynestedMetricsarraytimeAttributestringnestedTimeAttributestringlistMetricDefinitionsList all available engineering metric definitions. USAGE - Call this endpoint BEFORE querying metrics (queryPointInTimeMetrics): 1. Once at start: Call with view='basic' to discover all available metrics - cache this response 2. Once per metric: Call with view='full' and key=M...3 paramsList all available engineering metric definitions. USAGE - Call this endpoint BEFORE querying metrics (queryPointInTimeMetrics): 1. Once at start: Call with view='basic' to discover all available metrics - cache this response 2. Once per metric: Call with view='full' and key=M...
keyarrayviewstringcontextstringlistInitiativesList all initiatives in the organization with optional filters for draft and expired initiatives. View active improvement programs, strategic projects, and their current status to understand organizational priorities and track progress5 paramsList all initiatives in the organization with optional filters for draft and expired initiatives. View active improvement programs, strategic projects, and their current status to understand organizational priorities and track progress
pageintegercontextstringpageSizeintegerincludeDraftsbooleanincludeExpiredbooleangetInitiativeRetrieve detailed information about a specific initiative including its goals, timeline, affected entities, scorecard targets, and current progress. Essential for understanding initiative scope and tracking achievement of objectives2 paramsRetrieve detailed information about a specific initiative including its goals, timeline, affected entities, scorecard targets, and current progress. Essential for understanding initiative scope and tracking achievement of objectives
cidstringcontextstringgetMyWorkspaceTOOL for retrieving current user's owned resources and work items across the Cortex workspace. FLEXIBLE REQUEST STRUCTURE: The request accepts an object with optional fields for each resource type: - myEntitiesRequest: Fetch entities (services, resources, domains) owned by the...7 paramsTOOL for retrieving current user's owned resources and work items across the Cortex workspace. FLEXIBLE REQUEST STRUCTURE: The request accepts an object with optional fields for each resource type: - myEntitiesRequest: Fetch entities (services, resources, domains) owned by the...
contextstringmyTeamsRequestobjectmyOpenPRsRequestobjectmyEntitiesRequestobjectmyWorkItemsRequestobjectmyScorecardsRequestobjectmyRequestedReviewsRequestobjectlistRelationshipTypesList all available relationship types with pagination. View relationship type configurations to understand what kinds of relationships can be created between entities like services, resources, domains, and teams3 paramsList all available relationship types with pagination. View relationship type configurations to understand what kinds of relationships can be created between entities like services, resources, domains, and teams
pageintegercontextstringpageSizeintegergetRelationshipTypeDetailsGet complete details of a specific relationship type including its configuration, rules, source/destination filters, and inheritance settings. Essential for understanding how entities can be connected and what validation rules apply2 paramsGet complete details of a specific relationship type including its configuration, rules, source/destination filters, and inheritance settings. Essential for understanding how entities can be connected and what validation rules apply
contextstringrelationshipTypeTagstringlistEntityRelationshipsList all entity relationships/full graph for a specific relationship type across the entire organization. Returns paginated results showing all source-destination pairs, useful for understanding the complete relationship graph and finding all connections of a particular type4 paramsList all entity relationships/full graph for a specific relationship type across the entire organization. Returns paginated results showing all source-destination pairs, useful for understanding the complete relationship graph and finding all connections of a particular type
pageintegercontextstringpageSizeintegerrelationshipTypeTagstringlistScorecardsList all scorecards in the organization with optional filtering. View scorecard configurations to understand quality standards, compliance requirements, and maturity models. Supports filtering by groups, entities, and teams to find relevant scorecards7 paramsList all scorecards in the organization with optional filtering. View scorecard configurations to understand quality standards, compliance requirements, and maturity models. Supports filtering by groups, entities, and teams to find relevant scorecards
pageintegerteamsarraygroupsarraycontextstringentitiesarraypageSizeintegershowDraftsbooleangetScorecardGet complete details of a scorecard including its configuration, rules, levels, weights, exemption settings, and evaluation criteria. Essential for understanding how services are evaluated and what standards they must meet2 paramsGet complete details of a scorecard including its configuration, rules, levels, weights, exemption settings, and evaluation criteria. Essential for understanding how services are evaluated and what standards they must meet
tagstringcontextstringgetScorecardNextStepsForEntityGet actionable next steps for an entity to improve its scorecard performance. Shows which rules need to be satisfied to reach the next maturity level, helping teams prioritize improvements and track progress toward compliance goals3 paramsGet actionable next steps for an entity to improve its scorecard performance. Shows which rules need to be satisfied to reach the next maturity level, helping teams prioritize improvements and track progress toward compliance goals
tagstringcontextstringentityTagstringlistScorecardScoresRetrieve scores for all entities evaluated by a specific scorecard. Returns paginated results showing how each service, resource, or domain performs against the scorecard's rules, including individual rule scores and overall scorecard scores5 paramsRetrieve scores for all entities evaluated by a specific scorecard. Returns paginated results showing how each service, resource, or domain performs against the scorecard's rules, including individual rule scores and overall scorecard scores
tagstringpageintegercontextstringpageSizeintegerentityTagstringgetTeamDetailsRetrieve detailed information about a specific team by its tag or ID. Returns complete team data including members, slack channels, metadata, and whether it's backed by an identity provider group2 paramsRetrieve detailed information about a specific team by its tag or ID. Returns complete team data including members, slack channels, metadata, and whether it's backed by an identity provider group
contextstringtagOrIdstringquery_docsQuery the Cortex knowledge base for answers. Args: query: The question to ask Cortex docs Returns: Response from Cortex including answer and metadata2 paramsQuery the Cortex knowledge base for answers. Args: query: The question to ask Cortex docs Returns: Response from Cortex including answer and metadata
querystringcontextstringget_more_toolsCheck for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.1 paramsCheck for additional tools whenever your task might benefit from specialized capabilities - even if existing tools could work as a fallback.
contextvalueCognitive knowledge system with formal ontology, reasoning, and intelligence serving.
Cortex captures knowledge objects (decisions, lessons, fixes, sessions, research, ideas), classifies them with an OWL-RL ontology, discovers relationships, reasons over the graph, and serves intelligence through hybrid retrieval.


pip install abbacus-cortex[embeddings]
cortex setup
The setup wizard configures everything: LLM provider, embeddings, dashboard password, background services, and Claude Code registration.
Lightweight (no PyTorch — wizard offers to install embeddings):
pip install abbacus-cortex
cortex setup
Homebrew:
brew install abbacusgroup/cortex/abbacus-cortex
cortex setup
From source:
git clone https://github.com/abbacusgroup/Cortex.git && cd Cortex
uv sync --extra embeddings
cortex setup
Docker:
docker compose up -d
For non-interactive installs (CI, scripts): cortex setup --auto uses environment variables.
cortex capture "Fix: Neo4j pool exhaustion" --type fix --content "Root cause was..."
cortex search "Neo4j"
cortex list
cortex context "Neo4j"
cortex dashboard # web UI at http://localhost:1315
cortex setup writes configuration to ~/.cortex/.env. You can also edit it directly:
CORTEX_LLM_PROVIDER=anthropic
CORTEX_LLM_MODEL=claude-sonnet-4-20250514
CORTEX_LLM_API_KEY=sk-...
CORTEX_EMBEDDING_MODEL=all-mpnet-base-v2
Cortex loads .env from these locations in priority order: environment variables (highest), .env in the current working directory, then ~/.cortex/.env. The recommended location is ~/.cortex/.env for persistent configuration.
See .env.example for all options.
| Command | Description |
|---|---|
cortex setup | Interactive setup wizard |
cortex init | Initialize data directory and stores (deprecated — use cortex setup) |
cortex install | Install background services (macOS/Linux) |
cortex uninstall | Remove background services |
cortex register | Register MCP server with Claude Code |
cortex capture | Capture a knowledge object |
cortex search | Hybrid keyword + semantic search |
cortex read | Read object in full |
cortex list | List objects with filters |
cortex status | Health and counts |
cortex context | Briefing mode (summaries) |
cortex dossier | Entity-centric intelligence brief |
cortex graph | Show object relationships |
cortex synthesize | Cross-document synthesis |
cortex entities | List resolved entities |
cortex serve | Start MCP or HTTP server |
cortex dashboard | Start web dashboard |
cortex backup | Backup data directory to archive |
cortex restore | Restore from backup archive |
cortex doctor | Diagnostics: check, unlock, logs, repair |
cortex pipeline | Re-run intelligence pipeline on an object |
cortex reason | Run advanced reasoning (contradictions, patterns, gaps) |
cortex import-v1 | Import from Cortex v1 database |
cortex import-vault | Import from Obsidian vault |
26 tools for AI agent integration. Localhost-bound HTTP exposes all; non-localhost binds expose only the public set.
Public: cortex_search, cortex_context, cortex_dossier, cortex_read, cortex_capture, cortex_link, cortex_feedback, cortex_graph, cortex_list, cortex_classify, cortex_pipeline
Admin (localhost only): cortex_status, cortex_synthesize, cortex_delete, cortex_delete_entity, cortex_update, cortex_unlink, cortex_reason, cortex_query_trail, cortex_graph_data, cortex_list_entities, cortex_export, cortex_import, cortex_safety_check, cortex_debug_sessions, cortex_debug_memory
Cortex runs as a single MCP HTTP server that owns the graph store. Claude Code, the dashboard, the CLI, and the REST API are all HTTP clients of that one server.
┌───────────────┐ ┌────────────┐ ┌─────────────┐
│ Claude Code │ │ Dashboard │ │ CLI │
│ (MCP client) │ │ (browser) │ │ (terminal) │
└───────┬───────┘ └─────┬──────┘ └──────┬──────┘
│ │ │
│ HTTP JSON-RPC │ HTTP MCP │ HTTP MCP (default)
│ │ │ direct (--direct)
▼ ▼ ▼
┌──────────────────────────────────────┐
│ cortex serve --transport mcp-http │
│ (canonical MCP HTTP server) │
│ PID-locked owner of graph.db │
└──────────────────────────────────────┘
│
▼
┌─────────────────────────────┐
│ ~/.cortex/ │
│ graph.db (Oxigraph) │
│ cortex.db (SQLite WAL) │
└─────────────────────────────┘
# Install both MCP server and dashboard as background services
cortex install
# Install only the MCP server
cortex install --service mcp
# Remove all services
cortex uninstall
On macOS, this creates LaunchAgent plists (auto-start on login, auto-restart on crash). On Linux, this creates systemd user units.
Raw templates are available in deploy/ for manual setup.
--direct escape hatchBy default, CLI commands route through the running MCP server. If the server is down:
cortex --direct list # bypass MCP, open store directly
cortex --direct pipeline --batch # required for bulk SQL operations
Bootstrap commands (init, setup, import-v1, import-vault) always run directly.
docker compose up -d
# Server at http://localhost:1314
If the MCP server is killed hard, stale lock files auto-recover on next start. For manual cleanup:
cortex doctor unlock # normal cleanup
cortex doctor unlock --dry-run # report only
cortex doctor unlock --force # bypass live-holder check
cortex doctor logs # show log file sizes and status
cortex doctor logs --tail 20 # last 20 lines
cortex doctor logs --rotate # rotate log files (safe while running)
After restarting the MCP server, restart Claude Code to clear its stale session ID. claude --resume restores your conversation. The dashboard and CLI do not have this issue.
decision, lesson, fix, session, research, source, synthesis, idea
causedBy, contradicts (symmetric), supports, supersedes (transitive), dependsOn, ledTo (inverse of causedBy), implements, mentions
Cortex stores all data locally. No telemetry, no analytics, no phone-home. If you configure an LLM provider (via CORTEX_LLM_API_KEY), object content may be sent to that provider for classification and reasoning. Embeddings are computed locally by default using sentence-transformers.
Copyright (c) 2026 Abbacus Group. Licensed under the MIT License.
Cortex is a project of Abbacus Group and is not affiliated with any other product named Cortex.
csoai-org/pdf-document-mcp
xt765/mcp-document-converter
io.github.xjtlumedia/markdown-formatter
io.github.ai-aviate/better-notion
suekou/mcp-notion-server
meterlong/mcp-doc