---
title: "MCP Server"
description: "Model Context Protocol server — expose Semantica's full capability set to Claude Desktop, VS Code, Cursor, and any MCP-aware tool."
icon: "plug"
---
`semantica.mcp_server` exposes Semantica's knowledge graph, decision intelligence, semantic extraction, and reasoning capabilities as an [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server over stdio.
Compatible with **Claude Desktop**, **Windsurf**, **Cline**, **Continue**, **VS Code**, **Roo Code**, **Cursor**, and any other MCP-aware tool.
---
## Installation
```bash
pip install semantica
```
The MCP server is included in the base install — no extras required.
---
## Configuration
Add Semantica to your MCP client's settings:
```json Claude Desktop / Windsurf / Cline
{
"mcpServers": {
"semantica": {
"command": "semantica-mcp"
}
}
}
```
```json VS Code / Continue / Roo Code
{
"mcpServers": {
"semantica": {
"command": "python",
"args": ["-m", "semantica.mcp_server"]
}
}
}
```
```json With persistent graph
{
"mcpServers": {
"semantica": {
"command": "semantica-mcp",
"env": {
"SEMANTICA_KG_PATH": "/path/to/my_graph.json",
"SEMANTICA_LOG_LEVEL": "INFO"
}
}
}
}
```
---
## Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `SEMANTICA_KG_PATH` | *(none)* | Path to a persisted graph to load on startup |
| `SEMANTICA_LOG_LEVEL` | `WARNING` | Log level: `DEBUG`, `INFO`, `WARNING` |
---
## Tools
The MCP server exposes 12 tools that any connected AI assistant can call:
### Knowledge Extraction
Extract named entities (people, places, organisations, concepts) from text using Semantica NER.
**Input:**
```json
{ "text": "Apple Inc. was founded by Steve Jobs in Cupertino in 1976." }
```
**Output:**
```json
{
"entities": [
{ "label": "Apple Inc.", "type": "ORGANIZATION", "start": 0, "end": 10 },
{ "label": "Steve Jobs", "type": "PERSON", "start": 26, "end": 36 },
{ "label": "Cupertino", "type": "LOCATION", "start": 40, "end": 49 },
{ "label": "1976", "type": "DATE", "start": 53, "end": 57 }
]
}
```
Extract typed relations and `(subject, predicate, object)` triplets from text.
**Input:**
```json
{ "text": "Steve Jobs founded Apple Inc. and led it until 2011." }
```
**Output:**
```json
{
"relations": [
{ "source": "Steve Jobs", "type": "founded", "target": "Apple Inc." }
],
"triplets": [
{ "subject": "Steve Jobs", "predicate": "founded", "object": "Apple Inc." }
]
}
```
### Decision Intelligence
Record a decision with full context, reasoning, and metadata into the knowledge graph.
**Input:**
```json
{
"category": "model_selection",
"scenario": "Choose LLM for production reasoning pipeline",
"reasoning": "GPT-4 benchmark advantage justifies 3x cost increase",
"outcome": "selected_gpt4",
"confidence": 0.91,
"decision_maker": "product_team"
}
```
**Output:**
```json
{ "decision_id": "dec_a1b2c3", "status": "recorded" }
```
Query recorded decisions by natural language, category, or retrieve all recent decisions.
**Input:**
```json
{ "query": "model selection", "limit": 5 }
```
Find past decisions similar to a given scenario using hybrid similarity search.
**Input:**
```json
{ "scenario": "Choose cloud provider for HIPAA workload", "max_results": 3 }
```
Trace the causal chain upstream or downstream from a decision.
**Input:**
```json
{ "decision_id": "dec_a1b2c3", "direction": "downstream", "max_depth": 5 }
```
### Graph Operations
Add a node/entity to the live knowledge graph.
**Input:**
```json
{
"id": "apple_inc",
"label": "Apple Inc.",
"type": "Organization",
"metadata": { "founded": 1976, "hq": "Cupertino" }
}
```
Add a directed relationship (edge) between two existing entities.
**Input:**
```json
{
"source": "steve_jobs",
"target": "apple_inc",
"type": "FOUNDED",
"metadata": { "year": 1976 }
}
```
Compute PageRank centrality and community detection over the current graph. Returns top nodes by influence and community count.
Return node count, decision count, and graph health status.
### Reasoning & Export
Run forward-chaining IF/THEN rules over a set of facts to derive new facts.
**Input:**
```json
{
"facts": ["Employee(John)", "Manager(John)"],
"rules": ["IF Manager(?x) THEN HasAuthority(?x)"]
}
```
**Output:**
```json
{ "derived_facts": ["HasAuthority(John)"] }
```
Export the current knowledge graph.
**Input:**
```json
{ "format": "json-ld" }
```
Supported formats: `turtle`, `ttl`, `nt`, `xml`, `json-ld`, `json`.
---
## Resources
The MCP server also exposes three readable resources:
| URI | Description |
|-----|-------------|
| `semantica://graph/summary` | High-level graph statistics |
| `semantica://decisions/list` | All recorded decisions (up to 50) |
| `semantica://schema/info` | Server version and available tools |
---
## Test Locally
```bash
# Run the server directly for testing (reads from stdin, writes to stdout)
semantica-mcp
# Or with Python
python -m semantica.mcp_server
```
Send a JSON-RPC `initialize` message to confirm it's working:
```bash
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | semantica-mcp
```
---
## See Also
The ContextGraph that the MCP server operates on.
NER and relation extraction powering the MCP tools.
Forward-chaining engine behind run_reasoning.
Use Semantica inside Agno multi-agent teams.