Ouro Tools for agents

Give your agent a concrete output: a chart to download, a report to share, a PDF, or structured data from a webpage, feed, or table. Ouro has nine enabled products, JSON APIs, and a stateless Streamable HTTP MCP endpoint at https://ouro.tools/mcp. The public service needs no account for free tools or available daily trials.

CaptureKit is Coming soon. Watch scheduling is disabled. Neither is listed as a callable tool during this launch. Check current availability and enabled operations. Your AI client's own usage charges are separate from Ouro.

Connect an MCP client

Choose your client. These entries connect to the same public Streamable HTTP endpoint and need no OAuth setup or API key. Preserve your existing servers when adding Ouro.

Codex CLI

codex mcp add ouro-tools --url https://ouro.tools/mcp
codex mcp list

Official Codex MCP documentation. Start a new session or refresh the client if its tool list has not updated.

Claude Code

Add Ouro for your user across projects:

claude mcp add --transport http --scope user ouro-tools https://ouro.tools/mcp
claude mcp get ouro-tools

Use /mcp inside Claude Code to inspect the connection. Official Claude Code MCP documentation.

Claude web or desktop

On an individual Pro or Max plan, open Customize > Connectors, choose + > Add custom connector, and enter https://ouro.tools/mcp with the name Ouro Tools. Add it, then enable Ouro from the conversation's + > Connectors menu. Leave optional OAuth client fields empty. Team and Enterprise owners add the remote URL under Organization settings > Connectors first. Availability depends on your plan and organization settings. Official Claude remote-connector instructions.

Cursor

Merge this server entry into .cursor/mcp.json for one project, or ~/.cursor/mcp.json for your user:

{
  "mcpServers": {
    "ouro-tools": {
      "url": "https://ouro.tools/mcp"
    }
  }
}

Confirm Ouro is enabled in Cursor's MCP controls, then use it in Agent. Official Cursor MCP documentation.

Confirm the connection

Ask your client:

List the available Ouro Tools operations without creating anything. Confirm that chartlink_create_chart and feedform_normalize_feed are available and that Watch and CaptureKit are absent.

Then try one workflow below. A saved server setting is not proof that it connected. Inspect the client's tool result, including isError, and follow returned download links. These connection recipes were checked against the linked official documentation on September 22, 2026; that is separate from an installation test in each client. Direct API/MCP checks do not establish compatibility with every client version or account plan.

Three workflows to try

Turn numbers into a shareable update

Copy this prompt:

Use Ouro Tools to make a bar chart titled "Monthly orders" with labels April, May, June and values 12, 18, 24. These are example figures. Return the PNG and SVG links. Then publish a DropLink Markdown update with the same data, its total, and links to the chart files. Keep the deletion token out of the public update. Return the public page link and both download links, and tell me when they expire.

Expected output: a chart, a readable update showing a total of 54, and actual PNG/SVG downloads. Both tools are free within shared limits. Chart files and the DropLink page expire after 24 hours. Save the private deletion token separately if you want to remove the page early.

Turn public sources into a brief with checked quotations

Copy this prompt:

Use Ouro Tools to read https://www.iana.org/help/example-domains and https://example.com. Extract one short exact quotation from each readable source, then use SourceCheck to check those quotations against the same URLs. Report any blocked or unreadable source honestly. Create a concise PrintKit briefing PDF explaining the purpose of example domains, with source links and each quotation's check result. Separate source claims from your interpretation. Return the PDF download link and expiry. Do not create an account or purchase credits.

Expected output: readable source text, per-source quotation results, and a PDF if the sources and trial allowance are available. CleanRead and SourceCheck are free. One PrintKit PDF uses one of three daily trial units per client IP and product. SourceCheck confirms reachability and text presence, not factual truth. PrintKit supports Western European text and up to 10 pages; its file expires after 24 hours.

Turn a PDF table into reusable data and a chart

Attach a one-page PDF with selectable text and a visibly bordered table, then copy this prompt:

Use Ouro TableLift to extract the attached PDF's tables. Preserve the cell values and source page numbers, and return the CSV and JSON download links. Compare the first extracted table with the source before using it. If it has an unambiguous category column and numeric column, create a ChartLink bar chart from those values and return its PNG and SVG links. If extraction is unsupported or the columns are ambiguous, explain that instead of inventing data. Use the available trial only; do not purchase credits. Tell me when the files expire.

Expected output: extracted cells with page numbers, CSV/JSON files, and a chart when the table is suitable. TableLift accepts at most 3 MB and 10 pages, requires selectable text and borders, and does no OCR. Each document page consumes a trial unit, including pages without a table; the entire job must fit within the remaining three-unit daily allowance. No useful table means no product charge. All output files expire after 24 hours. Your client needs access to the PDF bytes; use the JSON API for large base64 uploads if its MCP input limit is smaller.

Choose a tool

Need Starting MCP operation Result
Share Markdown or CSV droplink_publish_document Public page for 24 hours; private deletion token
Receive a test webhook hookbox_create_inbox Incoming URL and separate private reader; 24 hours, 100 events
Make a chart chartlink_create_chart SVG, PNG, and hosted result for 24 hours
Read a public page cleanread_read_page Readable text, Markdown, links, and tables
Check source quotations sourcecheck_check_sources Per-source reachability and quotation results
Make a PDF printkit_create_pdf Temporary PDF; available trial required
Extract PDF tables tablelift_extract_tables CSV/JSON with source pages; available trial required
Collect structured answers collect_create_form Public form plus private owner access; 30 days, 100 responses
Normalize feed XML feedform_normalize_feed RSS/Atom converted to consistent JSON; no URL fetch

Inspect each operation's input schema before calling it. HookBox's sender posts to the returned incoming URL using HTTP; inbox management uses MCP. Collect uses a daily trial for creation. Private reader/owner tokens grant access to stored content; keep them out of shared pages and public logs.

Try a JSON API

This makes one chart. It does not create an account or purchase credit.

curl --fail-with-body https://ouro.tools/api/chartlink \
  -H 'Content-Type: application/json' \
  -H 'User-Agent: OuroExample/1.0' \
  --data '{"title":"Example sales","type":"bar","labels":["April","May","June"],"datasets":[{"name":"Sales","values":[12,18,24]}]}'

For a free text-only example with no generated file:

curl --fail-with-body https://ouro.tools/api/feedform/normalize \
  -H 'Content-Type: application/json' \
  --data '{"xml":"<rss version=\"2.0\"><channel><title>Notes</title><item><title>Hello</title></item></channel></rss>"}'

Full schemas: OpenAPI. Compact discovery: llms.txt. Service metadata: agent manifest.

Inspect MCP from a terminal

Initialize a stateless client, then list tools. Every request accepts JSON and SSE responses. No session ID is required.

curl --fail-with-body https://ouro.tools/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  --data '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"ouro-example","version":"1.0"}}}'

curl --fail-with-body https://ouro.tools/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2025-03-26' \
  --data '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Capacity, credits, and responsible retries

This launch has a shared work allowance and rate limits. HTTP 429 means slow down. HTTP 503 can mean temporary unavailability or a capacity pause pending operator review. Honor Retry-After, use exponential backoff with jitter, and stop after a small number of retries. Repeated calls or extra accounts do not increase the shared allowance. The catalog and documentation can remain available while new work is paused.

Store successful results. Do not regenerate a chart or PDF each time you display it. After a timeout during creation, inspect any saved response or returned resource ID before retrying: the original request may already have succeeded. If no result ID reached you, there is no general job lookup or idempotency guarantee. Do not automatically repeat the creation or attempt payments or account creation.

PrintKit, TableLift, and Collect each have three trial units per IP address per UTC day. People and agents sharing a network can share that allowance. Paid checkout is disabled for the initial launch; check /api/config before assuming credits can be purchased. A 402 response means stop and report the unavailable allowance. If prepaid credit becomes available, X-API-Key authenticates the account separately from private-preview HTTP Basic. Never put keys, private result links, or uploaded content in public repositories or logs. Creating an account does not buy credit; checkout requires a person to complete payment. Tool capacity limits still apply to paid accounts.

SourceCheck checks source reachability and text presence, not factual truth. TableLift needs selectable text and bordered tables, not scans. Temporary output links may grant access to anyone who receives them. Read pricing, privacy, and support before use.