Ouro Tools

Tools for charts, PDFs, tables, webpages, temporary sharing, webhooks, forms, and feeds.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
81%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,303Tokens (tool definitions)
~717 BTypical response size
Moderate attention impact (1.80% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

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

Remote endpoints

https://ouro.tools/mcpstreamable-http

What it can do

Tool inventory

Tools (19)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡droplink_publish_document(title, format, content)

Publish a Markdown report or CSV table as a readable, publicly shareable page for 24 hours. Returns a private deletion token only once. Scripts, images, and embeds are removed. Limits: 80,000 bytes, 500 CSV rows, 30 columns.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 120
    },
    "format": {
      "type": "string",
      "enum": [
        "markdown",
        "csv"
      ]
    },
    "content": {
      "type": "string",
      "maxLength": 80000
    }
  },
  "required": [
    "format",
    "content"
  ],
  "additionalProperties": false
}
🟢droplink_read_document(id)

Read a published DropLink document and its expiry. Expired links return 404.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🔴droplink_delete_document(id, token)

Delete a published DropLink immediately using its private deletion token.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "token"
  ],
  "additionalProperties": false
}
🟡hookbox_create_inbox(title)

Create a 24-hour webhook inbox with independent incoming and private reading capabilities. Accepts 100 events up to 16 KB each.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 80
    }
  }
}
🟢hookbox_read_inbox(id, token)

Read a webhook inbox using its private read token.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "token"
  ]
}
🔴hookbox_delete_inbox(id, token)

Delete a webhook inbox and all its stored events.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "token"
  ]
}
🟡chartlink_create_chart(title, subtitle, caption, type, theme, ...)

Create a bar, line, or stacked bar chart from numbers. Returns SVG and PNG files plus a hosted result for 24 hours.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 120
    },
    "subtitle": {
      "type": "string",
      "maxLength": 160
    },
    "caption": {
      "type": "string",
      "maxLength": 400
    },
    "type": {
      "type": "string",
      "enum": [
        "bar",
        "line",
        "stacked-bar"
      ]
    },
    "theme": {
      "type": "string",
      "enum": [
        "paper",
        "midnight",
        "sage"
      ]
    },
    "width": {
      "type": "integer",
      "minimum": 480,
      "maximum": 1600
    },
    "height": {
      "type": "integer",
      "minimum": 360,
      "maximum": 1000
    },
    "labels": {
      "type": "array",
      "minItems": 1,
      "maxItems": 60,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 80
      }
    },
    "datasets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 6,
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 60
          },
          "values": {
            "type": "array",
            "minItems": 1,
            "maxItems": 60,
            "items": {
              "type": "number",
              "minimum": -1000000000000,
              "maximum": 1000000000000
            }
          }
        },
        "required": [
          "values"
        ]
      }
    }
  },
  "required": [
    "labels",
    "datasets"
  ]
}
🟢chartlink_get_chart(id)

Retrieve a chart and download URLs before its 24-hour expiry.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢cleanread_read_page(url)

Extract readable text, Markdown, headings, HTTP links, and tables from one accessible public webpage. Does not execute JavaScript or bypass access restrictions.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "Public HTTP or HTTPS URL to read."
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false
}
🟢sourcecheck_check_sources(sources)

Check up to ten public source URLs for successful HTTP responses, final URLs, titles, and optional quotation matches in fetched text. Reports blocked and unreadable sources honestly. Does not verify factual truth.

Input Schema

{
  "type": "object",
  "properties": {
    "sources": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "maxLength": 2048
          },
          "quote": {
            "type": "string",
            "maxLength": 2000
          }
        },
        "required": [
          "url"
        ]
      }
    }
  },
  "required": [
    "sources"
  ]
}
🟡printkit_create_pdf(title, subtitle, author, template, markdown, ...)

Create a PDF using a report, proposal, or briefing layout. Provide Markdown or structured sections. Maximum 10 pages. Files expire after 24 hours. Limited trial usage, then 10 cents per document from prepaid credit.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 180
    },
    "subtitle": {
      "type": "string",
      "maxLength": 300
    },
    "author": {
      "type": "string",
      "maxLength": 100
    },
    "template": {
      "type": "string",
      "enum": [
        "report",
        "proposal",
        "briefing"
      ],
      "default": "report"
    },
    "markdown": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40000
    },
    "sections": {
      "type": "array",
      "minItems": 1,
      "maxItems": 24,
      "items": {
        "type": "object",
        "properties": {
          "heading": {
            "type": "string",
            "maxLength": 180
          },
          "body": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40000
          }
        },
        "required": [
          "body"
        ]
      }
    }
  },
  "required": [
    "title"
  ],
  "additionalProperties": false,
  "oneOf": [
    {
      "required": [
        "markdown"
      ]
    },
    {
      "required": [
        "sections"
      ]
    }
  ]
}
🟢tablelift_extract_tables(pdfBase64, filename)

Extract bordered tables from a text-based PDF into CSV and JSON with source page numbers. Maximum 3 MB and 10 pages. Scans and borderless tables are unsupported. Costs 10 cents per document page after the trial allowance; no charge when no useful tables are found.

Input Schema

{
  "type": "object",
  "properties": {
    "pdfBase64": {
      "type": "string",
      "maxLength": 4194332,
      "description": "Base64-encoded PDF bytes, maximum 3 MB decoded."
    },
    "filename": {
      "type": "string",
      "maxLength": 120
    }
  },
  "required": [
    "pdfBase64"
  ]
}
🟡collect_create_form(title, description, questions)

Create a form for 30 days and up to 100 responses. Costs $1 in credits after the trial. Returns a public form link and a private owner token.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "description": {
      "type": "string",
      "maxLength": 1000
    },
    "questions": {
      "type": "array",
      "minItems": 1,
      "maxItems": 12,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[A-Za-z][A-Za-z0-9_]{0,39}$"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240
          },
          "type": {
            "type": "string",
            "enum": [
              "text",
              "multiple-choice",
              "checkbox"
            ]
          },
          "required": {
            "type": "boolean",
            "default": false
          },
          "options": {
            "type": "array",
            "minItems": 2,
            "maxItems": 12,
            "uniqueItems": true,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            }
          }
        },
        "required": [
          "label",
          "type"
        ]
      }
    }
  },
  "required": [
    "title",
    "questions"
  ],
  "additionalProperties": false
}
🟢collect_read_form(id)

Read public form questions and availability. Does not expose answers or owner credentials.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟡collect_submit_response(id, answers)

Submit answers keyed by question ID to an open form. Text is limited to 2,000 characters per answer and 32 KB total.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "answers": {
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string",
            "maxLength": 2000
          },
          {
            "type": "array",
            "maxItems": 12,
            "uniqueItems": true,
            "items": {
              "type": "string"
            }
          }
        ]
      }
    }
  },
  "required": [
    "id",
    "answers"
  ]
}
🟢collect_read_responses(id, token)

Privately retrieve a form and its answers with its owner token.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "token"
  ]
}
collect_close_form(id, token)

Stop accepting responses. Answers remain privately accessible until expiry.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "token"
  ]
}
🔴collect_delete_form(id, token)

Delete a form and its responses using the owner token.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "token": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "token"
  ]
}
🟢feedform_normalize_feed(xml, limit)

Normalize one RSS 2.0 or Atom XML feed to stable JSON. Free; 1 MiB input, up to 100 returned items. Does not fetch URLs or retain feed content.

Input Schema

{
  "type": "object",
  "properties": {
    "xml": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1048576
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50
    }
  },
  "required": [
    "xml"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded19 tools