compass-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@compass-mcpRetrieve MiCA provisions on crypto asset classification"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
compass-mcp
An MCP server that grounds your LLM in EU financial, crypto and AI regulation via Compass. Add it to Claude Desktop, Cursor, or any MCP host, and the model can pull the governing EU provisions, verbatim and article-cited, before it answers.
It exposes two tools over Compass's public grounding API:
compass_retrieve: a question in, the top governing provisions out (verbatim text, article-level citations, cross-references) from the core EU acts (MiCA, DORA, MiFID II, the AML package, the AI Act, GDPR and more).compass_verify: check that a quote is a verbatim span of a specific provision, so the model never misquotes the law.
1. Get an API key
Create a key at compass.licentium.ai/developers. It looks like ck_live_.... The first calls are free; after that, usage is metered against your Compass credits. Keep the key secret.
Related MCP server: Lextiva Compliance MCP Server
2. Install and build
git clone <this-repo> compass-mcp
cd compass-mcp
npm install
npm run buildThis produces dist/index.js. (Once published to npm, hosts can run it with npx -y @licentium/compass-mcp and skip the clone/build.)
3. Configure your MCP host
Set COMPASS_API_KEY to your key in the server's environment.
Claude Desktop
Edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": {
"compass": {
"command": "node",
"args": ["/absolute/path/to/compass-mcp/dist/index.js"],
"env": { "COMPASS_API_KEY": "ck_live_your_key_here" }
}
}
}Restart Claude Desktop. You should see compass_retrieve and compass_verify in the tools list.
Cursor
Add to ~/.cursor/mcp.json (or the project's .cursor/mcp.json):
{
"mcpServers": {
"compass": {
"command": "node",
"args": ["/absolute/path/to/compass-mcp/dist/index.js"],
"env": { "COMPASS_API_KEY": "ck_live_your_key_here" }
}
}
}Any other MCP host
Run the binary over stdio with COMPASS_API_KEY set:
COMPASS_API_KEY=ck_live_your_key_here node dist/index.jsTools
compass_retrieve
Param | Type | Notes |
| string | A regulatory question in plain language. |
| number | Optional. Provisions to return, 1 to 20 (default 8). |
Returns the governing provisions as verbatim text, each with its reference (e.g. MiCA, Article 59), a node_id, and any cross-references. Feed a node_id into compass_verify to confirm a quote.
compass_verify
Param | Type | Notes |
| string | The |
| string | The exact text you intend to attribute to it. |
Returns whether the quote is a verbatim span of that provision.
Configuration
Env var | Required | Default | Notes |
| yes | (none) | Your |
| no |
| Override only for self-hosted endpoints. |
Notes
Compass returns primary-law text only. It is a research and scoping tool, not legal advice. When the corpus does not govern a question, compass_retrieve returns nothing rather than guessing, so instruct your model not to assert an ungrounded answer.
Logs go to stderr so they never corrupt the stdio JSON-RPC stream.
Available Tools
2 toolscompass_retrieveA
Ground a claim in EU financial, crypto or AI regulation. Returns the top governing provisions from the core EU acts (MiCA, DORA, MiFID II, the AML package, the AI Act, GDPR and more) as VERBATIM text with article-level citations and cross-references. Call this BEFORE stating anything about EU financial/crypto/AI regulation, and cite the returned provisions by their reference. If nothing is returned, do not assert an answer.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | A natural-language regulatory question, e.g. 'Does a custodial wallet need a CASP licence under MiCA?' | |
| top_k | No | How many provisions to return (default 8). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description discloses that the tool returns verbatim text with article-level citations and cross-references, which is sufficient for a retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the purpose front-loaded and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains what the tool returns (verbatim text, citations) and its context of use, making it complete for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description adds minimal extra meaning (e.g., default for top_k), meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool grounds claims in EU regulation, returns top governing provisions with verbatim text and citations, distinguishing it from sibling compass_verify by focusing on retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to call the tool ('BEFORE stating anything about EU...regulation') and provides a rule for handling no results ('do not assert an answer'), giving clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compass_verifyA
Check that a quote is a VERBATIM span of a specific EU provision (identified by the node_id returned by compass_retrieve). Use this before presenting a quotation as the words of the law, to guarantee you are not misquoting.
| Name | Required | Description | Default |
|---|---|---|---|
| quote | Yes | The exact text you intend to attribute to that provision. | |
| node_id | Yes | The node_id of the provision, from a compass_retrieve result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It indicates the tool performs a verification check, but does not specify side effects, success/failure behavior, or authorization needs. A 3 is appropriate as it is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The critical information is front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two simple string params and no output schema, the description covers the purpose and usage well. It is missing specifics about the output format (e.g., boolean or error), so it is not fully complete, but close.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description reinforces the usage context but adds no new semantic information beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if a quote is a verbatim span of an EU provision, using node_id from compass_retrieve. It distinguishes from the sibling compass_retrieve by focusing on verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this before presenting a quotation...' which provides clear guidance on when to invoke the tool. It also implies a prerequisite (retrieve node_id first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v1.0.1- First observed
compass_retrieve - First observed
compass_verify
TDQS
The two tools have completely distinct purposes: one retrieves provisions, the other verifies quotes against a specific provision. There is no overlap in functionality.
Both tools follow a consistent 'compass_verb' naming pattern using snake_case, providing clear and predictable tool names.
With only 2 tools, the server feels thin for the broad domain of EU financial, crypto, and AI regulation. While focused, it may be insufficient for complex tasks.
The tools cover retrieving and verifying provisions, but lack search or listing capabilities, which are essential for navigating a large regulatory corpus. This is a notable gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Provenance-backed EU and UK legislation for AI agents, addressable to the individual provision.
181Read-only query service for EU payments legislation: 51 curated instruments, by provision.
141
Related MCP Servers
- AlicenseAqualityFmaintenanceQuery 37 EU regulations — from GDPR and AI Act to DORA, MiFID II, eIDAS, Medical Device Regulation, and more — directly from Claude, Cursor, or any MCP-compatible client.1417325Apache 2.0
- FlicenseAqualityDmaintenanceProvides AI agents with access to a structured compliance dataset covering privacy and AI regulations across jurisdictions, enabling verifiable answers to regulatory questions via tools and resources.12-
- AlicenseNot gradedqualityCmaintenanceEnables searching and quoting EU legislation with verifiable EUR-Lex citations, including GDPR, NIS2, DORA, and the EU AI Act.17MIT

LexAPI MCPofficial
AlicenseAqualityBmaintenanceEnables querying EU legal documents, case law, and citation graphs through natural language using the LexAPI.10863MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LicentiumIO/compass-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server