mcpbeat Sign in

CompanyGraph MCP Server

by companygraph Your server? Claim it
answering

CompanyGraph is answering right now. Last checked 3 min ago. It exposes 13 tools.

CompanyGraph: Written once, read by both

Uptime history 43 hours of history
43 hours agonow
100.0%
Uptime 24h
91 of 91 checks
13
Tools
read from the server
236 ms
Response time
average over 24h
open, no key
Access
streamable-http

What changed 6

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 22 September 2026. No other catalogue keeps this.

23 Sep a tool changed version2 times that day
23 Sep a tool description was rewritten search
23 Sep a tool changed the parameters it asks for search
22 Sep a tool changed version2 times that day
and 2 more, back to 22 September 2026

Nothing serious here today

Today is the operative word: we check CompanyGraph every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 3 min ago.

run in your terminal
claude mcp add mental-model --transport http https://mcp.companygraph.io/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mental-model": {
      "url": "https://mcp.companygraph.io/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.mental-model]
url = "https://mcp.companygraph.io/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "mental-model": {
      "url": "https://mcp.companygraph.io/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "mental-model": {
      "url": "https://mcp.companygraph.io/mcp"
    }
  }
}

Available tools 13

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

describe
describe_errors
What a refused call looks like. A tool's output schema covers its answers only, so use this once, to branch on refusals or validate them. No input. Returns `errors`, every `code` with `when` it is raised and the JSON Schema of its `details`, and `schema`, the JSON Schema of a whole refusal: `error` with `code`, `message`, `rule`, `details`, beside `model`.
describe_relations
What the schemas declare between types: references with form and cardinality, ownership, enums, joins, list kinds. Use for a diagram or audit; for one type's full schema use describe_schema. Optional `type` narrows every list, `direction` (declares, declared-to, both; needs `type`) one side of relations, `via` relations and enums. Returns those lists, with `forms` and `reading` explaining every term. Not paged.
describe_rule
One rule as written. Input: `rule`, a number from list_rules such as R9, in either case. Returns `rule`, `title`, `part`, `text` and the file's `url`. An unknown number is refused with the known ones listed.
describe_schema
One type's schema: its sections as written and its declared relations as data. Use to learn what an entity of the type may hold; for the whole vocabulary use describe_relations. Input: `type`. Returns `url`, the schema's own file, `sections`, and `relations`: owner, owns, references both ways, enums, joins and lists.
checks
list_checks
The checks the model's own gate runs, from the checker release this server was built with. Use to see which rules a script enforces and which are left to a reader. No input. Returns `checks`, each with `name`, `rule` and that rule's `title`, and `ranBy`. A list and no verdict: this server runs none of them.
entities
list_entities
The entities of one type, by id. Use to browse a type; to find an entity by words or by name use search. Input: `type`, optional `owner` (an id) to keep one owner's entities, `limit` (default 50, at most 200) and `cursor`. Returns `entities` with `id`, `type`, `name`, `tagline`, `owner`, and `page`; follow `page.nextCursor` while `page.hasMore`.
entity
get_entity
One entity as structured data: fields, sections, tables and its references both ways. Use to reason over an entity; for its page as written use fetch. Input: `id`, or `type` and `name`; an ambiguous name is refused with candidate ids. Returns `entity`. Each reference list holds at most 50 edges; `referenceCounts` gives the totals and list_references the rest.
evidence
find_evidence
Every edge into one skill, grouped by the type of the page that drew it. Use to check a claimed skill against its evidence. Input: `skill`, an id or canonical name; optional `limit`, `cursor`. Returns `skill`, `evidence` and `page`; a profile's claim arrives via Skills.Skill with its level, an evidence row via Evidence.Skill. Attributes are verbatim.
fetch
fetch
One entity's page as written. Use to quote or display the source; for structured fields and references use get_entity. Input: `id`, from search, list_entities or any reference. Returns `id`, `title`, `type`, `url` and `text`, the Markdown source. Takes no name: search with match "name" finds the id.
references
list_references
The model's edges, filtered and paged. Use to inspect one entity's relations or one kind of reference without taking whole entities. Optional `entity` (an id), `direction` (out, in, both; needs `entity`), `via`, `type` (the far end's type, or either end's without `entity`), `limit`, `cursor`. Returns `edges`, each `from`, `via`, `to`, `attrs`, and `page`.
rules
list_rules
The rules the model is held to, from the CONVENTIONS.md its core vendors. Use to resolve a rule number that a schema or a refusal cites, such as R9. No input. Returns `tagline`, the file's `url`, and `rules`, each with `rule`, `title` and `part`; describe_rule gives one rule's text.
search
search
Find entities by words, substring or exact name. `match: "words"` needs every query word's stem in name, tagline, fields, sections or cells; `"text"` (default) is a case-insensitive substring over the same; `"name"` the exact canonical name. Optional `type`, `owner`, `limit`, `cursor`. Returns `results` with `id`, `title`, `type`, `matched`, `words` in words mode, and `page`: a listing, not a ranking.
types
list_types
Every type the model's schemas declare. Use first, to learn which types exist before listing or describing one. No input. Returns `types`, each with `type`, `name`, `tagline`, `owner` (the type it nests under, or null) and `count`, the entities it holds.

Endpoints

URLTransportStateLatencyChecked
https://mcp.companygraph.io/mcp streamable-http answering 208 ms 3 min ago

Alternatives to CompanyGraph

same job, measured the same way
katra
by craigjmidwinter

A committed markdown dev log and task graph that agents read and write over MCP.

local only
Benmilne
by benmilne-com

Search and read essays by Ben Milne on payments, stablecoins, and company building.

answering
ovecc
by ovecc-labs

Architecture guardrails for AI-written code: dependency graph, impact, dead code, CI gate

36 installs/wk local only
QuickBooks Connector by Meridian
by pilot-meridian

Connect QuickBooks Online to AI agents with secure read or write access across multiple companies.

answering
F
Finance Foundation
by finance

Open financial reference data: companies with LEI/ISIN/FIGI, markets, funds, graph, live series.

7 tools answering
IMAP mailbox
by ni-c

Read, search and organise any IMAP mailbox, with writes off by default

101 installs/wk local only
Jobily Jobs
by jobily

Search Greek job listings on Jobily.gr by role, location, sector or company. Anonymous, read-only.

5 tools answering
MCP Lever
by smeet666

Search public Lever job boards: resolve a company, read its openings, read one in full.

53 installs/wk local only

CompanyGraph — questions

Answers built from our own checks of this server.

What can CompanyGraph do?
It exposes 13 tools, read directly from the server on our last check. Among them: describe_errors, describe_relations, describe_rule, describe_schema, fetch, find_evidence and 7 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is CompanyGraph working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 236 ms. The bar chart above shows every period we have measured.
How do I connect CompanyGraph?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does CompanyGraph need an API key?
No. CompanyGraph completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 13 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is CompanyGraph?
It answers our handshake in 236 ms on average, which is faster than 70% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.