MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Other

HODDS

Find software, SaaS and APIs for a need in a sourced catalogue organised by business process.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
1250 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
21

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 1250 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name hodds.

  • Pass
    Lists tools

    tools/list returned 21 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 1250 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 1250 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    34 of 79 parameters have a description (43%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-26T06:55:33.557897Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using HODDS

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http hodds https://hodds.ai/mcp

Capabilities

Tools 21

ack_alerts

Acknowledges alerts of one watch (alert_ids, or all: true for every alert of this watch); the only call that empties the pending delivery. Returns the number acknowledged and the number remaining for the organisation; a replay changes nothing. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
cancel_creator_plan

Stops the subscription at the end of the paid period. Listings, claims, declarations and ranking are unchanged; the coarse demand table stays free. Contract 0.3.1. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
cancel_plan

Stops the subscription at period end; new paid watches are refused immediately. Then paid watches close and remain readable 30 days. No renewal minimum. Agent tokens and legacy free rights are unchanged. Without a paid plan the tool answers not_paid. Contract 0.7.0. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
compare_solutions

Compare 2–3 catalogue IDs by required capabilities, offer, context and dated sources. Unknown/stale/conflict stay explicit; unknown price is never zero. Discover IDs at /api/capabilities and details at /api/solutions/{id}/specification. Costs require all assumptions. Large result: repeat arguments with view; restart on 409. Public read, no billing/business writes; one call per POST.

Discovered
find_comparable_solutions

Find alternatives by required priority, optionally relative to one solution. IDs/context: /api/capabilities. A match satisfies every requirement in one configuration. Evaluates the whole pilot before limit, separating match/unresolved/mismatch and stating catalogue coverage, not market coverage. Large result: repeat arguments with view; restart on 409. Public read, no billing/business writes; one call per POST.

Discovered
get_creator_plan

Returns the demand data subscription of the organisation of the token: plan NONE or SUBSCRIBED, subscribed processes, pending removals, the coming invoice, payment provider and invoices. €10 excl. VAT per process per month, invoiced by VORAN, paid through Stripe; no effect on ranking. Contract 0.3.1. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
get_plan

Returns the plan of the organisation of the token: FREE, PAID, PAST_DUE, ENDING or ENDED; watched solutions billed in the current Stripe period, offer_version, invoice and payment proof. initial_basket, when present, gives the account's selected needs, exact upfront quote and activation status; its destination is for a human, not agent payment. prepaid-v1: €2 excl. VAT at the start of each monthly period covers the first 4 counted watches; initial basket extras: €0.50 each now; later extras: €0.50 excl. VAT at period end, never charged twice. Legacy rights keep the free unit and arrears until voluntary conversion. VORAN invoices through Stripe. Each watch identity counts once per period, even if closed, regardless of agent. Contract 0.7.0. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
get_solution

Returns one HODDS catalogue record by id (an option id returned by search_solutions): name, homepage, summary in English and French, processes (the first is primary), keywords, pricing models without amounts (empty means unknown) with the pricing page, interfaces (public API, MCP server, self-hosting: yes, no or unknown), markets, publisher, dated sources and status. Status non_attested means the publisher has not confirmed the record; unknown values are stated as unknown. Read-only.

Discovered
get_watch

Returns one watch of the organisation: constraints, solution in place, challenger with its switch brief and HODDS status, challenger_reason when there is none, and the 50 most recent alerts, unacknowledged first (all: true for 200). Reading does not acknowledge. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
list_gaps

Returns, for a subscribed process, the gaps formulated by HODDS and the client aggregates above the anonymity threshold (watched needs, organisations watching, NO_MATCH, current choices, constraints, challengers delivered, GAP_RESOLVED). No need text, no organisation, no agent. Contract 0.3.1. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
list_processes

Returns the HODDS process taxonomy: groups (for example "Run the business") and processes (for example "invoice-and-get-paid"), with English and French labels and the number of catalogue records per process. A process id is accepted as the `process` filter of search_solutions. Read-only.

Discovered
list_watches

Lists the watches of the organisation with their challenger and number of pending alerts; include_closed adds the watches closed in the last 30 days. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
rate_alert

Marks one alert relevant or not_relevant, with an optional note of at most 500 characters. It never changes ranking. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
read_choice

Public read: capabilities discovers IDs and context vocabulary; candidates finds IDs for a priority; compare compares 2–3 IDs; specification reads one dossier. Same operation/input with representation detail, transport.resume and reference reads a snapshot field or page. On 409 restart summary. No account or writes. Sources, unknowns and dated limits remain explicit. Read the single JSON content.text Outcome (no structuredContent). A compact capabilities index keeps every ID, label and value_type; read its detail.field for definition, enum_values, units and scope before constructing a priority. Candidate priority operators by discovered value_type: boolean equals true only; quantity (integer) or amount ({minor,currency,tax_basis}) equals, at_least, at_most; set equals, or contains with a nonempty array; enum equals a member of enum_values. Text is not a candidate priority. Use the request schema for required keys and vocabularies for values; comparison_rule does not define priority operators or imply superiority.

Discovered
search_solutions

Searches the HODDS catalogue of software, SaaS, APIs and online services, organised by business process, for records that match a need written in English or French (for example "transcribe my meetings" or "automatiser mes workflows"). Returns a request_id, a status and up to `limit` options; each option has an id, a label, a short description and source URLs (provenance). Ranking combines lexical matching on record names, keywords and processes with semantic similarity (multilingual embeddings on Cloudflare Workers AI), or lexical matching alone when the semantic part is unavailable; ownership or sponsorship never changes it. Confidence is always UNKNOWN: records are non-attested facts taken from publishers' public pages. Status NO_MATCH with an empty option list means that no record matches the need closely enough, or that the need belongs to a process with no record yet; results are never padded. Read-only.

Discovered
send_feedback

Stores a declarative outcome report for an option returned by search_solutions: outcome YES (the option met the need), PARTLY or NO, with the request_id and the option id exactly as returned. It is the only HODDS tool that writes data without a token; the watch tools (watch_need and the others) write only with an organisation token. The report is stored as an unverified caller statement and never changes ranking by itself; the same report sent twice is stored once. When feedback storage is unavailable on the deployment, the tool returns an error and stores nothing.

Discovered
set_creator_processes

Replaces the list of subscribed processes. Without an active subscription the result has status 402 and a Stripe Checkout destination for a person to open. With one, an addition through this tool also answers status 402 with the Plan page as destination: nothing is charged here, only the page charges, after a person confirms it. Removals apply at once and the removed processes stay readable until the end of the paid period. An empty list is refused (empty_selection): use cancel_creator_plan. Contract 0.3.1. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
set_current_choice

Sets a solution by id or free name (any process), null clears. Returns the watch; challenger recomputed later. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
unwatch_need

Closes a watch; its need, constraints and alerts are erased 30 days after closing. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered
watch_choice

Requires a Bearer token and an existing owned NEED watch. bind explicitly attaches a canonical comparison request at expected_revision (optional explicit reset_baseline); review checks the current accepted documentary build; get reads the retained state and events with after/limit (1–50). No new watch, purchase or notification. A conflict requires an explicit caller decision; no automatic retry or reset.

Discovered
watch_need

Watches a need; CATEGORY follows a process. Optional target selects one product and capability_ids (empty = whole product), counted once. Targeted alerts report documented changes, conditions and unknowns, not a guarantee of suitability. Initially not_computed; rules produce challenger/switch brief; alerts on following calls. Unknown constraints stay uninterpreted. prepaid-v1: payment_required (402), draft_id, watch_status DRAFT, destination /my/plan. Legacy: free_watch_used (409, Checkout). plan_ending (409) refuses new watches. Errors: _meta["ai.hodds/error"]. Search is free. Price: €2 excl. VAT at the start of each monthly period covers the first 4 counted watches; initial basket extras: €0.50 each now; later extras: €0.50 excl. VAT at period end, never charged twice. A person accepts the summary at destination. Legacy rights stay unchanged. Needs an organisation token (Authorization: Bearer hodds_...); without it the tool returns the error token_required.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected1250 ms21