Skip to main content
Glama
GraphiteAI

graphite-mcp

Official
by GraphiteAI
README.md
# graphite-mcp

MCP server for the **[Graphite Financial Knowledge Graph](https://graph.graphite-ai.net)** — wires the graph into Claude Code, Claude Desktop, Cursor, Codex CLI, and any other MCP-compatible client.

Your Claude / agent does the reasoning. Graphite answers the graph questions it asks for. **No LLM tokens are billed by Graphite** — you bring your own LLM (subscription or API key); we only serve graph data.

## Install

```bash
pip install graphite-mcp
```

Or from source:

```bash
git clone https://github.com/GraphiteAI/graphite-mcp
cd graphite-mcp
pip install -e .
```

## Get a Graphite key

Free tier — **100 graph queries / month** — at:
**https://graph.graphite-ai.net/#/portal**

Sign up with your email; you get back a key like `sk-…`.

Chat-with-the-graph in the web portal is BYOK — you bring your own
Anthropic or OpenAI key (it stays in your browser). Or skip the portal and
use this MCP server with your Claude / ChatGPT subscription, no API key
needed on the LLM side at all.

## Configure your client

Same JSON shape works for every MCP client; only the file path differs.

```json
{
  "mcpServers": {
    "graphite": {
      "command": "graphite-mcp",
      "env": {
        "CENTRAL_SERVER_URL": "https://api.graphite-ai.net",
        "CUSTOMER_API_KEY": "sk-your-graphite-key"
      }
    }
  }
}
```

| Client          | Config path |
| --------------- | --- |
| Claude Code     | `~/.claude/mcp.json` |
| Claude Desktop  | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) |
| Cursor          | `~/.cursor/mcp.json` |
| Codex CLI       | `~/.codex/config.json` |

Restart your client after editing.

If you installed from source and don't want to put the package on PATH, replace the `command` line with:

```json
"command": "python",
"args": ["-m", "graphite_mcp"],
```

## Available tools

Once configured, Claude can call these tools to answer questions about companies, supply chains, executives, regulations, and patents.

| Tool | Purpose |
| --- | --- |
| `search_entities`   | Free-text search by name, ticker, sector, or description |
| `get_entity`        | Full record for one entity by ID (e.g. `company:NVDA`) |
| `get_relationships` | Every edge attached to an entity (employs, supplies, depends_on, …) |
| `get_facts`         | Typed fact log for an entity (revenue, headcount, etc.) |
| `find_path`         | Shortest path between two entities through the graph |
| `exposure_analysis` | 1st + 2nd-degree neighborhood, sector breakdown — supply-chain risk view |
| `compare_entities`  | Shared connections + path distance + direct relationships between two |

## Example prompts

After setup, just ask Claude:

- "What's NVIDIA's supply-chain exposure to TSMC?"
- "Find the shortest path from company:AAPL to company:ASML."
- "Compare Microsoft and Google — who do they share board members with?"
- "List every revenue-from edge for NVDA."

Claude will pick the right tool, call this MCP server, and ground its answer in real graph data.

## How it works

```
your Claude          graphite-mcp           api.graphite-ai.net
─────────────       ────────────────       ─────────────────────
"NVDA exposure?" ─→ exposure_analysis ─→  GET /graph/exposure
                    (this package)         (returns JSON)
                                       ←─
              ←─    formatted answer
```

The MCP server is a thin stdio adapter — it doesn't store anything, doesn't see your prompts, doesn't bill you. All the value lives in the graph at `api.graphite-ai.net`.

## Env vars

| Var | Default | Notes |
| --- | --- | --- |
| `CENTRAL_SERVER_URL` | `http://localhost:8000` | Override to use a different Graphite deployment |
| `CUSTOMER_API_KEY`   | (empty) | Required — issued at https://graph.graphite-ai.net/#/portal |

## License

MIT. Use freely, modify freely, no warranty.

TDQS

A4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search, detail retrieval, relationship listing, fact retrieval, path finding, exposure analysis, and pairwise comparison. No two tools appear to do the same thing, and descriptions specify unique parameters and outputs. Even the two-entity tools (find_path and compare_entities) are differentiated by their focus on connection chains versus shared relationships.

Naming Consistency4/5

Most tools follow a consistent snake_case verb_noun or verb_noun pattern (search_entities, get_entity, get_relationships, get_facts, find_path, compare_entities). The only slight deviation is exposure_analysis, which uses a noun phrase rather than a verb-prefixed form, but this is minor and does not create confusion.

Tool Count5/5

Seven tools is an appropriate size for a specialized financial knowledge graph server. Each tool addresses a distinct query need without redundancy or bloat. This falls well within the ideal 3-15 range for a focused domain.

Completeness5/5

The tool surface covers the core lifecycle of knowledge graph exploration: search, retrieve entity details, list relationships, retrieve facts, trace paths, analyze exposure, and compare entities. There are no obvious missing operations for a read-only analytical server. All tools can be chained since they accept entity IDs returned by search or get operations.

Maintenance

ActivityInactive
ResponsivenessNo issues