compound-mcp
A read-only MCP lookup server (OpenLookup, by Compound Labs) that answers time-sensitive questions about AI models, developer tools, services, and compliance using live public data — no API key needed.
Compare AI models — current pricing and which models major coding tools actually route to, ranked by adoption across budget bands or by tool (Claude Code, Codex CLI, Cline, Aider).
Check project maintenance — last release/commit and whether a dependency reads as dead before you recommend it.
Look up service pricing — published prices and free-tier limits for auth, database, payments, email, hosting, each with a last-verified date.
Estimate stack cost — itemised monthly bill for a named stack at a given user count, separating base-fee from metered lines.
Search agent skills — published Claude Code skills, plugins and marketplaces ranked by installs, returning the install command.
Search agent configs — real AGENTS.md/CLAUDE.md/Cursor/Copilot/etc. files from public repos, scored for quality.
Search component registries — shadcn-compatible components, blocks and hooks with dependencies.
Grade starter kits — boilerplates graded by actually installing them, not by their README.
Compare app builders — whether AI mobile-app builders' output clears App Store review, with sourced verdicts (or
unknown).ADA accessibility lookup (
lookup_ada_report) — grade A–F, WCAG 2.1 AA violation counts and failing rules for a local-government .gov domain, plus its Title II deadline (Apr 2027/2028) and public report URL.Nonprofit status lookup (
lookup_nonprofit_status) — checks an EIN against IRS auto-revocation and California charity delinquency/suspension lists; returns revocation/reinstatement dates, 15-month reinstatement window, AB 488 donation-blocking status, and acheckedreceipt of sources and scope.Note: the supplied schema exposes only the two compliance tools (
lookup_ada_report,lookup_nonprofit_status); the README advertises eleven total, runnable vianpx -y openlookupover stdio or--http.
Provides a tool for evaluating whether apps built by AI mobile-app builders will clear Apple App Store review, covering output details, source exportability, binary submission, and applicable guidelines.
Click on "Deploy 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., "@compound-mcpIs austintexas.gov ADA compliant?"
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.
OpenLookup
MCP server from Compound Labs. Eleven read-only lookup tools backed by live public data — no API key, no signup, nothing to sign up for.
mcp-name: tech.thecompound/openlookup
OpenLookup was published on npm as compound-mcp until 2026-10-02. That package is deprecated and points here. Install openlookup instead.
Most OpenLookup tools answer questions that a model cannot answer correctly from its training cutoff. The underlying facts change after training, including current model costs, library maintenance, and whether someone has published a skill you plan to write.
Tools
Facts that change over time
Tool | Answers |
| Current AI model pricing and which models the major coding tools actually route to, sampled nightly. Boards by budget band ( |
| Whether a developer tool is still shipping: last release, last commit, whether it reads as dead. Run it before recommending a dependency. |
| Published pricing and free-tier limits for auth, database, payments, email and hosting services — each plan carrying the date its published price was last verified against the vendor's own page. |
| An itemised monthly bill for a named stack at a chosen user count, showing which lines are included in the base fee and which are metered. |
Directories
Tool | Answers |
| Published Claude Code skills, plugins and marketplaces, ranked by installs. Returns the install command, so the answer is directly actionable. |
| Real |
| shadcn-compatible components, blocks and hooks across dozens of public registries, with their dependencies so you can judge the cost of pulling one in. |
| Starter kits and boilerplates, graded by installing them: what is actually wired up versus what only appears in the README. |
| Whether the app an AI mobile-app builder hands you clears Apple App Store review — what it outputs, whether you can export the source, who submits the binary, and which guidelines are in play. Every verdict carries the source that settles it and the date it was read; an unsettled question comes back |
Compliance
lookup_ada_report(domain)
OpenLookup looks up a US local-government domain in the [CivicBinder Municipal Web Accessibility Index](https://civicbinder.org/ada). The index uses axe-core scans of local-government .gov websites and grades them A–F against WCAG 2.1 AA. The index applies the April 26, 2027 ADA Title II deadline to communities of 50,000+ and the April 26, 2028 deadline to smaller communities and special districts.
The tool returns the grade, violation counts (total / serious / critical), the top failing rules, the entity's deadline, and the public report page (https://civicbinder.org/ada/<domain>). The full index is also published as an open dataset at [civicbinder.org/ada/dataset.json](https://civicbinder.org/ada/dataset.json).
lookup_nonprofit_status(ein)
Checks a nonprofit's EIN against the IRS auto-revocation list and the California Registry of Charities delinquency/suspension lists, via GoodStanding. Returns revocation and reinstatement dates, whether the streamlined 15-month reinstatement window is still open, and whether AB 488 requires charitable fundraising platforms to block the organization's donation pages. A clear: true result means the EIN is on none of the tracked lists.
Related MCP server: propublica-npo-mcp
Install
npm install -g openlookupOr run without installing: npx -y openlookup
Run
openlookup # stdio (for MCP clients)
openlookup --http 8974 # streamable HTTP on http://localhost:8974/mcpClaude Code
claude mcp add openlookup -- npx -y openlookupClaude Desktop
Add the server to claude_desktop_config.json in Settings → Developer → Edit Config:
{
"mcpServers": {
"openlookup": {
"command": "npx",
"args": ["-y", "openlookup"]
}
}
}Examples
Which model should I use for a coding agent on a budget?
compare_ai_models({ board: "budget/value", limit: 3 }) →
{
"board": "budget/value",
"captured_on": "2026-08-05",
"models": [
{
"rank": 1,
"model": "z-ai/glm-5.2",
"blended_usd_per_mtok": 1.175,
"price_band": "$1 to $5 / M",
"rationale": "3.05T tokens through 6 tracked coding tools · ranked on usage, which measures adoption rather than capability."
}
]
}Is the city website at 36thdistrictcourtmi.gov ADA compliant?
lookup_ada_report("36thdistrictcourtmi.gov") →
{
"found": true,
"domain": "36thdistrictcourtmi.gov",
"entity_name": "36th District Court",
"grade": "A",
"violations_total": 0,
"ada_title_ii_deadline": "2027-04-26",
"report_url": "https://civicbinder.org/ada/36thdistrictcourtmi.gov"
}Health
The health check records three facts separately. A single health endpoint that ANDs them together cannot identify which fact failed.
npm run health # the working tree, over stdio
npm run health:public # npx -y openlookup@latest, resolved fresh from npmSignal | What it answers |
| The process spawns and the MCP handshake completes. |
| The server enumerates its tools. An error and an empty list are both failures. |
| Each public endpoint the tools read answers, right now. Recorded per host. |
| Calling a tool returns a usable payload. Separate from |
--target public is the deployment check, and it is deliberately outside CI. openlookup has
no deployed HTTP endpoint, so the public path is npm: it spawns the published tarball through
npx, with a throwaway cache and from a neutral directory, so what answers is what a stranger
gets rather than this checkout. Build success and externally reachable protocol state are
different facts, and this repo has already shipped a version where they disagreed.
Every signal starts failed. The health check flips a signal only when that run provides
evidence for it. A timeout, a dead socket, and a signal that could not be attempted all
remain failures with a reason. None of them becomes a pass. A finding exits 0 so a scheduled
run cannot disarm itself during an outage. --strict exits non zero, and
ops/npm/publish.mjs runs it after publishing.
Each run writes a dated receipt to ops/health/receipts/. The test at
ops/health/probe.test.mjs breaks each signal separately and verifies that the health
check keeps them separate.
Scheduled every 6 hours as compound.compound-mcp.health.
Compliance tool receipts
lookup_ada_report and lookup_nonprofit_status return the verdict and the lookup in separate
fields. clear and grade contain the outcome. checked contains the receipt. The receipt
records when the lookup ran, which lists or index it consulted, and what that coverage does not
include. An agent can use the receipt to explain what it verified without running the lookup
again.
{
"ein": "475262842",
"clear": true,
"checked": {
"at": "2026-09-20T14:36:34.257Z",
"sources": [
"IRS Automatic Revocation of Exemption List",
"California Attorney General Registry of Charities and Fundraisers"
],
"via": "https://goodstanding.thecompound.tech/api/lookup",
"scope": "Covers only the two lists named above, as GoodStanding retains them. A clear result means the EIN is absent from those lists. It is not a statement that the organization was never revoked, and no other state registry is consulted."
}
}License
MIT © Compound Labs
Available Tools
2 toolslookup_ada_reportLook up an ADA Title II website accessibility reportA
Look up a US local-government (.gov) domain in the CivicBinder Municipal Web Accessibility Index. Returns the accessibility grade (A-F), WCAG 2.1 AA violation counts from an axe-core scan, the failing rules, the entity's ADA Title II compliance deadline (April 2027 or April 2028), and a link to the full public report page. Use for questions like "is cityofx.gov ADA compliant" or "how accessible is this county website".
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The .gov domain to look up, e.g. "denvergov.org" or "cityofmadison.com". Protocol and paths are stripped automatically. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It discloses what the tool returns in detail and implies a read-only operation via the verb 'look up'. It doesn't mention error handling for domains not in the index, but this is minor for a lookup 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?
The description is tightly written: it leads with the action, summarizes the return payload, gives example questions, and includes the protocol-stripping note. Every sentence earns its place without redundancy.
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 single-parameter lookup with no output schema, the description fully covers what the tool does, what it returns, and when to use it. It is self-contained and sufficient for an agent to invoke the tool correctly.
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?
The schema already fully documents the single parameter. The description adds valuable behavior beyond the schema, noting that protocol and paths are stripped automatically, which helps the agent construct valid input.
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 states the specific verb 'look up' and the resource 'CivicBinder Municipal Web Accessibility Index', and lists the specific return fields (grade, violation counts, failing rules, deadline, link). It clearly differentiates from the sibling tool lookup_nonprofit_status, which is about a different subject entirely.
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?
Provides clear usage context with example questions ('is cityofx.gov ADA compliant') and explicit scope (.gov domains). It doesn't explicitly state when not to use it, but the sibling tool is obviously different in domain, so the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_nonprofit_statusLook up nonprofit IRS / California good standing by EINA
Check a US nonprofit's standing by EIN against the IRS auto-revocation list (tax-exempt status revoked for three consecutive missed Form 990 filings) and California Registry of Charities delinquency/suspension lists. Returns revocation and reinstatement dates, whether the streamlined 15-month reinstatement window is still open, and whether AB 488 requires fundraising platforms to block donations. A "clear" result means the EIN is on none of the tracked lists.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | The organization's 9-digit EIN, with or without a dash, e.g. "12-3456789". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral details: the data sources checked, the types of returned information, and the meaning of 'clear'. It does not mention any limitations, caching, or error conditions, but for a lookup tool this is quite transparent.
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?
The description is concise and front-loaded: two sentences, the first stating the main action and data sources, the second defining the key result. Every sentence adds value, with no fluff or repetition.
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 one parameter, no output schema, and no annotations, the description is complete: it identifies the exact lists, the return values, and the meaning of a clear result. It gives the user sufficient understanding without needing to guess return structure or side effects.
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?
The schema covers 100% of the parameter 'ein' with a description and example. The tool description mentions 'by EIN' but adds no new meaning beyond the schema. Thus the baseline score of 3 applies; the description does not need to compensate for schema coverage.
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 a US nonprofit's standing by EIN against specific IRS and California lists, enumerating exactly what is checked (auto-revocation, delinquency/suspension) and what is returned (dates, reinstatement window, AB 488 effect). This distinguishes it from the sibling lookup_ada_report and uses a specific verb ('Check') with a well-defined resource.
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 provides clear context about the tool's scope (IRS and California lists) and what constitutes a 'clear' result, but it does not explicitly state when to use this tool versus alternatives or any exclusions. Since the sibling tool is not referenced, it lacks explicit when-not-to-use guidance.
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.
2 tool updates
v0.1.2- First observed
lookup_ada_report - First observed
lookup_nonprofit_status
TDQS
Scored across 2 tools
The two tools are completely distinct: one checks government website accessibility, the other checks nonprofit tax status. There is no overlap or ambiguity between them.
Both tools follow the exact same 'lookup_*' pattern with a clear noun, making the naming consistent and predictable.
With only two tools, the server is slightly under the typical range, but each tool addresses a specific, well-defined lookup need, so the count is reasonable for a niche server.
Each tool fully covers its intended lookup scenario (accessibility report and nonprofit status). No obvious missing operations exist for the stated purpose, though the overall scope is limited.
Maintenance
Related MCP Connectors
ProPublica Nonprofit MCP — ProPublica Nonprofit Explorer API (free, no auth)
Sanctions, PEP, watchlist, recall, business, and contract screening. Free tier, no auth required.
Free US data lookups: ZIP demographics, CISA KEV/EPSS CVEs, domain rank, county spending, recalls.
Free US data lookups: ZIP demographics, CISA KEV/EPSS CVEs, domain rank, county spending, recalls.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to look up IRS nonprofit data, verify tax-deductible charity status, and search for organizations by name or location using the CharityAPI database.43-
- AlicenseAqualityDmaintenanceProvides tools to search and retrieve nonprofit organization data and IRS filing summaries from ProPublica's Nonprofit Explorer, including side-by-side comparisons.4MIT

DataNexus MCPofficial
AlicenseAqualityBmaintenanceProvides AI-ready access to US/UK nonprofit data and OSS vulnerability intelligence via MCP, with 10 tools and no API key required.55108 npm3Business Source 1.1- FlicenseNot gradedqualityBmaintenanceKeyless, pay-per-call compliance & regulated-data tools for AI agents: OFAC wallet + sanctions/PEP + KYB screening, SEC filings, FRED economics, FDA recalls, federal awards, and continuous monitoring (watch a wallet/company/brand for status changes). USDC via x402 on Base/Solana, no API key, no signup.-