Skip to content

HODDS changelog

ai.hodds/hodds

2 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • llms.txt +28 −12

    https://hodds.ai/llms.txt

    − > HODDS is a search engine of software and SaaS for agents and bots, organised by business process. Describe a need in English or French; HODDS returns options from its catalogue, each with source URLs and explicit limits. Read access is free, needs no key and allows CORS.− - Watch a need (My ways): 1 watched solution free, then €0.50 per watched solution per month, €2 monthly minimum (excl. VAT).− - Compare: free, no key; two or three solutions by capabilities, with sources, dates and explicit unknowns. Pilot: Abby, Indy, Qonto, Pennylane, Invoice Ninja; other catalogue IDs remain selectable with unknown details. [Compare](/compare/) · GET /api/capabilities · MCP compare_solutions / find_comparable_solutions.− Base URL: https://hodds.ai. Public contract v0, contract_semver 0.4.0. Find a way.− Coverage: records are published for the 4 process groups and all 39 processes; coverage per process is uneven. A need that no record matches answers NO_MATCH; GET /api/processes gives the solution count per process.− - Errors are RFC 9457 problem details (application/problem+json).− - Tools (19, as in tools/list): search_solutions {need, limit?, process?, lang?} (Search software for a need), get_solution {id} (Get a catalogue record), list_processes {} (List processes), send_feedback {request_id, option_id, outcome} (Report an outcome). The first three are read-only; send_feedback is the only tool that writes without a token.− - Additional public read tools: compare_solutions (Compare solutions for a need), find_comparable_solutions (Find alternatives for a priority). Typed inputs and optional cost scenarios: public contract section 11. One comparison call per POST; no batches.− - The other 13 tools need an organisation token (section below). Watch: watch_need (Watch a need), get_watch (Read a watch), list_watches (List watches), set_current_choice (Change the solution in place), ack_alerts (Acknowledge alerts), rate_alert (Rate an alert), unwatch_need (Close a watch). Creator plan: get_creator_plan (Read the creator plan), set_creator_processes (Set the subscribed processes), list_gaps (Read the demand data of a process), cancel_creator_plan (Stop the creator plan). My− ## Watch and delivery (contract 0.3.0)− - POST /api/watches (MCP watch_need) with {need, context: {constraints}, process?, current_choice?, delivery: {mode: "next_call"}, alert_budget?, lang?}: opens a watch and returns it in full. level CATEGORY with a process follows a whole process. An organisation on the FREE plan keeps one ACTIVE watch (409 free_watch_used). Contract 0.3.2: while a stopped My ways plan runs to the end of its period (ENDING), a new paid watch answers 409 plan_ending with destination, the Plan page /my/plan.− - Delivery on the next call, with a valid token: MCP results carry _meta["ai.hodds/pending"] and a last text block "HODDS pending: ..."; existing HTTP routes keep their body and add the headers HODDS-Pending and HODDS-Pending-Watches; new routes carry a top-level pending member. Never on an error. Only ack_alerts empties it.+ > HODDS is a search engine of software and SaaS for agents and bots, organised by business process. Describe a need in English or French; HODDS returns options from its catalogue, each with source URLs and explicit limits. Public catalogue reads are free, need no key and allow CORS. Private choice POSTs use same-origin checks and have no permissive CORS.+ - Watch a need (My ways): €2 excl. VAT per month, covering 4 counted watches; €0.50 excl. VAT per additional watch. The initial selected basket is paid in full before activation; subsequent periods start with the minimum, with unpaid additional usage at period end. New contracts have no free watch; historical rights are retained.+ - Compare: free, no key; two or three solutions by capabilities, with sources, dates and explicit unknowns. Catalogue IDs without a detailed dossier remain selectable with unknown details. [Compare](/compare/) · GET /api/capabilities · MCP compare_solutions / find_comparable_solutions.+ [Short agent guide](/agents/index.md) · [Guided entry](/agents/)+ [Agentic era](/agentic-era/index.md) · [Ère agentique — français](/fr/ere-agentique/index.md)+ Coverage of this build: 40 detailed dossiers / 331 catalogue records. This count describes available documentation, not the whole market or proven suitability.+ Base URL: https://hodds.ai. Public contract v0, contract_semver 0.7.0. Find a way.+ Coverage: records are published for the 4 process groups and all 40 processes; coverage per process is uneven. A need that no record matches answers NO_MATCH; GET /api/processes gives the solution count per process.+ ## Choice reads+ Candidate contract 0.5.0: read_choice (Read a software choice) provides capabilities → candidates → compare → specification entirely over MCP, starting with {"operation":"capabilities","input":{"locale":"en"}} and reusing returned IDs. Standard /mcp has 21 tools; /mcp/public has 6 read-only tools and never enables feedback, account functions or pending alerts, even with a token. Summary is the default. Keep operation/input and transport.resume; read omitted facts with representation=detail and r+ ### Explicit documentary link (candidate 0.5.0)+ watch_choice (Document a watched software choice) is a token-required tool on /mcp only; /mcp/public rejects it even with Bearer. Open a classical NEED watch first through watch_need, with the user's permission and existing account/plan rules. Linking is a separate explicit action: operation=bind, returned watch_id, canonical compare request, expected_revision=0 for the first link. It creates no watch, subscription, extra place or charge. On bind failure the classical watch remains unlinked. ope+ - POST /api/choice (also /api/choice/): closed four-operation read, no query string; application/json, strict UTF-8 with no repeated keys, no compression, same-origin browser context or headerless machine. One call per POST; batches containing read_choice are refused. No-store/no-referrer; no permissive CORS; OPTIONS 405.+ - Legacy HTTP errors are RFC 9457 problem details (application/problem+json). Choice errors use {ok:false,error:{status,code,detail,errors}}; admission failures retain their body and Retry-After.+ - Tools (21, as in tools/list): search_solutions {need, limit?, process?, lang?} (Search software for a need), get_solution {id} (Get a catalogue record), list_processes {} (List processes), send_feedback {request_id, option_id, outcome} (Report an outcome). The first three are read-only; send_feedback is the only tool that writes without a token.+ - Additional public read tools: compare_solutions (Compare solutions for a need), find_comparable_solutions (Find alternatives for a priority), read_choice (Read a software choice). Typed inputs and optional cost scenarios: public contract section 11. One comparison call per POST; no batches.+ - The other 14 tools need an organisation token (section below). Watch: watch_need (Watch a need), get_watch (Read a watch), list_watches (List watches), set_current_choice (Change the solution in place), ack_alerts (Acknowledge alerts), rate_alert (Rate an alert), unwatch_need (Close a watch), watch_choice (Document a watched software choice). Creator plan: get_creator_plan (Read the creator plan), set_creator_processes (Set the subscribed processes), list_gaps (Read the demand data of a proces+ ## Watch and delivery (contract 0.6.0)+ - POST /api/watches (MCP watch_need) with {need, context: {constraints}, process?, current_choice?, delivery: {mode: "next_call"}, alert_budget?, lang?}: opens a watch and returns it in full. level CATEGORY with a process follows a whole process. New prepaid-v1 contracts require paid entitlement; without it, HTTP 402 payment_required (MCP tool error) saves an inactive draft and provides a subscription-summary destination. Only legacy accounts retain one free ACTIVE watch and 409 free_watch_used.+ - Delivery on the next supported call, with a valid token and monitoring entitlement, outside comparison reads, read_choice and watch_choice: MCP results carry _meta["ai.hodds/pending"] and a last text block "HODDS pending: ..."; existing HTTP routes keep their body and add the headers HODDS-Pending and HODDS-Pending-Watches; new routes carry a top-level pending member. Never on an error. Only ack_alerts empties it.+ ## Monitoring offer version and inactive drafts (0.6.0)+ - €2 excl. VAT per month, covering 4 counted watches; €0.50 excl. VAT per additional watch. The initial selected basket is paid in full before activation; subsequent periods start with the minimum, with unpaid additional usage at period end. No free watch, trial or welcome credit for new prepaid-v1 contracts. Search and comparison stay free.+ - Without entitlement under prepaid-v1, POST /api/watches returns HTTP 402 payment_required, not a watch success. It may save or reuse an inactive draft, with draft_id, watch_status: "DRAFT", destination (the same-origin subscription summary /my/plan?draft_id=…), offer_version, upfront_amount: "2.00", monthly_minimum: "2.00", minimum_covers: 4, price_per_watch_month: "0.50", currency: "EUR" and tax_status: "calculated_at_checkout". RFC 9457 status remains the integer 402. The draft causes no mon+ - GET /api/plan and MCP get_plan expose offer_version, initial_payment_confirmed, upfront_amount, overage_due_estimate and next_period_minimum. Plan state FREE alone never proves free entitlement. Drafts are inactive, retained 30 days from creation and can be deleted by the member.+ - Count each durable watch identity once per organisation and period [start, end). Closing exactly at the start excludes the next period; closing within it does not restore a unit. No prorating. 0/1/4/5/20 counted watches cost €2/€2/€2/€2.50/€10 excl. VAT. Closing all watches does not cancel the subscription. ENDING admits no new activation; no next-period minimum on cancellation.+ - Historical accounts retain their previous free-watch rights and billing schedule until explicit voluntary conversion; an existing paid plan keeps its current terms during its period. Full conditions: /terms/; prior text: /terms/history/2026-10-25-v1.1.md. No payment influences ranking.+ Initial basket (human consent only, contract 0.6.0): choose N distinct needs, N ≥ 1; amount due now in cents = max(200, 50 × N). Only this frozen selection activates after full server-confirmed payment. First-period unpaid balance for M counted identities = 50 × max(0, M − max(4, N)) cents. Renewals return to 4 covered watches and unpaid extras at period end; no repeated supplement or carried credit. The 25-draft preparation limit is not a paid watch cap. API/MCP prepare individual drafts and se+ Contract 0.7.0 adds optional product targets to watches: one solution_id with capability_ids (empty means the whole product) remains one billed identity. PRODUCT_CHANGED reports documented changes within that scope, retaining unknowns, conditions and sources. Human selection flows through /my/cart, then a frozen server summary and exact Stripe payment proof. Free uncovered-need requests are private, require human review and never activate a paid watch.

  • Tools −1
    • − find_comparable_solutions