Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Standardized, restatement-aware SEC + European (ESEF) XBRL fundamentals, served to your agent.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
HUBEQUITY_API_KEYValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"hub-equity": {
"command": "uvx",
"args": [
"hub-equity-mcp"
],
"env": {
"HUBEQUITY_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add hub-equity --env HUBEQUITY_API_KEY=your-value -- uvx hub-equity-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"hub-equity": {
"command": "uvx",
"args": [
"hub-equity-mcp"
],
"env": {
"HUBEQUITY_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"hub-equity": {
"type": "stdio",
"command": "uvx",
"args": [
"hub-equity-mcp"
],
"env": {
"HUBEQUITY_API_KEY": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified against the domain hub-equity.com (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: HUBEQUITY_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.0.0) reached the registry 31 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, MCP Server Autocad Lisp Helper
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
High-precision static analysis and debug server for AutoCAD AutoLISP (.lsp) files.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Standardized XBRL financial data for LLM agents. A Model Context Protocol (MCP) server that exposes normalized financial facts from US SEC (EDGAR) and European ESEF filings to Claude Desktop, Cursor, and any MCP-aware client.
Hub-Equity serves standardized European ESEF filings alongside US SEC data through one consistent hub-concept vocabulary, so an agent can ask for REVENUE or TOTAL_ASSETS and get a comparable, source-linked value whether the issuer files with the SEC or under ESEF.
Maturity. The public REST API behind this connector runs in production and
powers Hub-Equity's own chat. The package follows Semantic Versioning; it keeps
the Beta classifier while its install base is young.
readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false per the MCP spec, so clients can reason about safety and caching without introspection.https://api.hub-equity.com) over HTTPS. It never ships or requires a database key.pipx run hub-equity-mcp
pipx run (or uvx hub-equity-mcp) fetches and starts the server in an isolated environment; pip install hub-equity-mcp works too. Requires Python 3.12 or newer.
The server talks only to the public REST API, which needs a hubq_ key (env var HUBEQUITY_API_KEY).
The published package never reaches the database directly, only the REST API.
Add to claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json, Windows: %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": { "hub-equity": { "command": "pipx", "args": ["run", "hub-equity-mcp"], "env": { "HUBEQUITY_API_KEY": "INSERT_YOUR_API_KEY" } } } }
Without HUBEQUITY_API_KEY, every tool call answers HUBEQUITY_API_KEY is not set with the link to a Free key.
Add to .cursor/mcp.json (project root) or the global Cursor MCP settings:
{
"mcpServers": { "hub-equity": { "command": "pipx", "args": ["run", "hub-equity-mcp"], "env": { "HUBEQUITY_API_KEY": "INSERT_YOUR_API_KEY" } } } }
HUBEQUITY_API_KEY (required): a hubq_ key. A Free key opens the base tools; a paid plan opens the premium tools and the higher rate limit.HUBEQUITY_API_URL (optional): defaults to https://api.hub-equity.com. https:// is enforced whenever a key is set (the server refuses to send the Bearer key over plaintext to a non-loopback host).| Type | What |
|---|---|
| Tools | Read-only tools: discovery, facts, time series, segments, forensic checks (table below) |
| Resources | Hub catalog, statement schema, tier catalog, usage guides, coverage snapshot |
| Prompts | Analytical templates (list below) |
| Completion API | {hub_code} autocomplete |
The machine-readable tier catalog is served as a resource (hub-equity://catalog/tool-tiers). Free tools cover discovery and identity; Pro tools, open on every paid plan (Builder, Team, Enterprise), add forensic depth (calculation trees, restatement diffs on amendments and silent restatements, cross-period comparison, cross-issuer comparison, validation results, extension concepts). The tier of a tool mirrors the REST endpoint it calls: every Pro tool's endpoint requires the facts.premium scope server-side, and the Free caps (get_fact_decomposition depth 1 without roll-up components or dimensional slices, screen_companies 20 results without the quality filter, get_segments axes without members, roll_up_metric the value without its rule) are applied by the API, not only by this package.
| Tool | Tier | What it does |
|---|---|---|
find_entity(query) | Free | Search by name, ticker, or CIK. Returns the entity_id other tools need. |
get_fact(entity_id, hub_concept_code, fiscal_year, fiscal_period_type?) | Free | One normalized value plus its filing source. |
get_fact_decomposition(entity_id, fiscal_year, hub_concept_code? or qname?, depth?) | Free (depth 1, linkbase only) / Pro (depth 2-3) | Hub rollup, XBRL calc-linkbase children, and dimensional breakdown. Free: the linkbase layer, without the roll-up components and the dimensional slices. |
search_concept(query) | Free | Resolve a hub code from a label or a partial code. |
list_hubs(category?, include_non_primary?, limit?) | Free | Enumerate the standardized hub catalog by category. |
get_entity_profile(entity_id) | Free | Sector, auditor, employees, fiscal year end, recent filings. |
get_metric_history(entity_id, hub_concept_code, n_years?) | Free | N-year time series with YoY growth and CAGR. |
get_segments(entity_id, hub_concept_code, fiscal_year) | Free (capped) | Dimensional axis/member breakdown (segment, geography). Free: the axes without their members; Pro: every member. |
get_amendments(entity_id, fiscal_year?) | Free | 10-K/A restatement summary: every amendment, its per-concept changes (50 per amendment). |
get_silent_restatements(entity_id, fiscal_year?) | Free | Silent restatements: figures a later filing reprinted differently in its comparative columns, with no amendment filed, grouped by the filing that revealed them (50 changes per filing). |
compare_entities(entity_ids, hub_concept_codes, fiscal_year) | Pro (up to 10x10) | Cross-issuer comparison matrix at one period, calendar-year aligned. Accepts UUIDs, tickers or TICKER.MIC. |
roll_up_metric(entity_id, hub_concept_code, fiscal_year) | Free (capped) | Compute a value from signed children when it is not directly tagged. Free: the value; Pro: the rule and the signed contributions behind it. |
convert_currency(amount, from_currency, to_currency, date?, rate_type?) | Free | ECB reference-rate FX conversion (closing, average YTD, average prior year). |
screen_companies(country?, sector?, min_revenue?, ..., sort_by?, limit?) | Free (limit 20, no quality filter) / Pro (higher) | Filter the issuer universe by metadata, revenue, audit, and data quality. |
get_amendment_diff(entity_id, fiscal_year?, hub_concept_code?, min_diff_pct?, kind_filter?) | Pro | Per-concept 10-K/A diffs: materiality, kind and concept filters, label, absolute delta, both filings as sources. |
get_silent_restatement_diff(entity_id, fiscal_year?, hub_concept_code?, min_diff_pct?, kind_filter?) | Pro | The same diff on the silent restatements. |
get_calculation_tree(filing_id, link_role?) | Pro | The filing's calculation linkbase: every total and its components, declared sign next to the sign the filed values support. |
compare_filings(entity_id, fiscal_year_a, fiscal_year_b, hub_concept_codes?) | Pro | Cross-period same-entity compare with new / removed / sign-flip / restatement flags. |
get_extension_concepts(entity_id, status_filter?, limit?) | Pro | Issuer-specific qnames declared outside standard taxonomies. |
get_data_quality_grade(entity_id) | Free | A+ to D grade (or none), the two gates and counts behind it, freshness, direct-vs-derived split. |
get_validation_results(filing_id?, entity_id?, fiscal_year?, status_filter?) | Pro | XBRL accounting and calculation-linkbase checks. |
| URI | Type | Purpose |
|---|---|---|
hub-equity://catalog/hubs | json | Full standardized hub catalog with EN/FR labels and category. |
hub-equity://catalog/categories | json | Hub counts per category. |
hub-equity://catalog/tool-tiers | markdown | Free vs Pro tool catalog and gating conditions. |
hub-equity://schema/financial-statements | markdown | Statement structure and reading rules. |
hub-equity://catalog/hub/{hub_code} | template | Forward catalog entry for one hub. |
hub-equity://entity/{entity_id}/profile | template | Full entity snapshot. |
hub-equity://prompts/best-practices | markdown | System-prompt guidance for client integrations. Load this before calling any tool. |
hub-equity://prompts/tool-usage-examples | markdown | Per-tool few-shot examples (good and anti-pattern). |
hub-equity://prompts/data-coverage | json | Live dataset snapshot (issuer and filing counts, sources, taxonomies, fiscal year range). Cached 24h. |
Eight analytical templates: peer_comparison, quality_of_earnings, restatement_audit, sector_overview, valuation_screen, goodwill_impairment_risk, working_capital_diagnostic, cash_flow_consistency.
Before calling any tool, fetch hub-equity://prompts/best-practices and inject the markdown into your system prompt. This makes your client follow the same tool routing, source-citation, and numeric-fidelity rules as Hub-Equity's own chat.
# Pseudo-code for a typical MCP client integration
session = mcp.connect("hub-equity-mcp") best_practices = session.read_resource("hub-equity://prompts/best-practices") system_prompt = "You are an assistant ...\n\n" + best_practices
| Mode | Limit | Notes |
|---|---|---|
| Free key | 120 requests / minute | Base tools. |
| Builder key | 300 requests / minute | Premium tools unlocked. |
| Team key | 600 requests / minute | Premium tools unlocked. |
| Enterprise key | 1 000 requests / minute | Negotiable. |
The bucket is per API key.
On a per-minute 429 the client retries with exponential backoff (up to 3 times) before raising RateLimitExceeded. A used-up daily or monthly allowance is raised at once, with the API's message.
| Symptom | Cause | Fix |
|---|---|---|
429 Too Many Requests / RateLimitExceeded | Rate cap hit (120/min with a Free key, 300 to 1 000/min on a paid key) | Move to a paid plan, or slow down the tool-call fan-out. The client already backs off up to 3 times. |
HUBEQUITY_API_KEY is not set on every tool call | No key in the client's env block | Set HUBEQUITY_API_KEY; a Free key takes a minute at https://hub-equity.com/settings/api-keys. |
HubEquityRestError: HTTP 401 | An invalid, expired or revoked hubq_ key (INVALID_API_KEY) | Create a new key at https://hub-equity.com/settings/api-keys. |
HubEquityRestError: HTTP 403 | The key's workspace is on the Free plan and the call needs a Pro tool, or a Free cap (depth > 1, limit > 20, min_quality_grade) | Upgrade the plan, or stay within the Free caps. |
| RateLimitExceeded whose body carries DAILY_QUOTA_EXCEEDED / MONTHLY_QUOTA_EXCEEDED | The workspace's volume allowance is used up (Free 200 a day / 5 000 a month, Builder 50 000, Team 500 000 a month); raised at once, without retry | Wait for resets_on, or upgrade the
Only the beginning is shown; read the rest in the repo