Patchwell MCP
Patchwell provides an MCP server offering three AI agent tools: transcription with word-level timestamps and speaker labels, data cleaning for messy spreadsheets with a detailed change log, and web research with cited sources and confidence scores. It supports prepaid usage-based pricing.
Endpoint and access
OAuth sign-in: the first time you connect, your client opens the vendor's own authorization prompt in a browser.
https://patchwell.io/mcp/What its tools do
4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (1)
Can change data (3)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to patchwell.io ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Transcribe audio or video files to text with word timings
- Clean and standardize messy CSV or Excel data exports
- Research market topics with cited source links
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- Patchwell 1.30.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 4 advertised
- Resources
- Sign-in required
- Resource templates
- Sign-in required
- Prompts
- Sign-in required
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Tools
4 advertised
transcribe
Transcribe speech in an audio or video file. Use it when you need the words in a recording, quotes with their time, who said what, or subtitles. Returns text, sentence segments, each word with start/end seconds, confidence and speaker (`spk`: 1, 2, ... told apart by voice), `turns` (speaker, start, end, text), `speakers` with talk time, SRT and VTT with speaker labels, and `flags` listing any phrase the guards removed (Whisper's invented phrases over silence and repetition loops) with its original text and time. Files over about 100 seconds of processing return {"status": "running", "job_id"}: call get_job_result with it. Price: $0.008 per audio minute; failed downloads are free.
{
"type": "object",
"title": "transcribeArguments",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"title": "Url",
"description": "Direct http(s) link to an audio or video file: mp3, wav, m4a, ogg, flac, mp4, mov, webm and most others. Up to 3 hours. YouTube page links don't work; pass the media file itself."
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Language",
"default": null,
"description": "Two-letter language code such as en, es or ja. Leave it out to detect the language from the audio."
}
}
}{
"title": "Transcribe audio or video",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}research
Research a question on the live web and get an answer in which each sentence cites the page it came from. Use it for facts you can't answer from memory or that may have changed. Returns `answer` (sentences with [url] citations), `sources`, `gaps` (what the sources couldn't confirm) and `confidence` (high/medium/low). Takes about a minute; a slow question returns {"status": "running", "job_id"} for get_job_result. Declines questions about private individuals (addresses, contact details, relatives, profiles) and returns a `category` saying why. Price: $0.15 per answered question; declined and unanswered questions are free.
{
"type": "object",
"title": "researchArguments",
"required": [
"question"
],
"properties": {
"context": {
"type": "string",
"title": "Context",
"default": "",
"description": "Optional background: who the answer is for, what you already know, or constraints such as country or date range."
},
"question": {
"type": "string",
"title": "Question",
"description": "The question in plain language, up to 4,000 characters. Ask about topics, markets, products, prices, companies, regulations, places, events or published research."
}
}
}{
"title": "Research a question with cited sources",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}get_job_result
Fetch the result of a long call that returned {"status": "running", "job_id"}. Call it every 20 to 30 seconds until status is 'done'; the finished result has the same shape as the original tool's. Free.
{
"type": "object",
"title": "get_job_resultArguments",
"required": [
"job_id"
],
"properties": {
"job_id": {
"type": "string",
"title": "Job Id",
"description": "The job_id from a transcribe, research or clean_data call that returned status 'running'."
}
}
}{
"title": "Get a research result",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}clean_data
Clean a messy spreadsheet or JSON export into typed, deduplicated records with a log of each change. Use it before you analyse, import or act on tabular data. It works out each column's type from the values, normalises emails, phones, dates, money, names and states, repairs broken encodings, and merges duplicate records. Returns `rows`, `changes` (row, column, before, after, rule), `review` (rows held back, with the reason), `columns`, `clusters` (likely typos), a JSON `schema`, a reusable `recipe` and `stats`, whose counts always add up to the input rows. Price: $2 per 1,000 rows, minimum $0.02.
{
"type": "object",
"title": "clean_dataArguments",
"properties": {
"url": {
"type": "string",
"title": "Url",
"default": "",
"description": "Public http(s) link to a CSV, TSV, XLSX or JSON file, up to 100 MB. Use this or content_base64."
},
"hints": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Hints",
"default": null,
"description": "Force a column's type, e.g. {\"Joined\": \"date\"}. Types: email, phone, date, money, number, us_state, name, boolean, text."
},
"recipe": {
"anyOf": [
{
"type": "object",
"additionalProperties": true
},
{
"type": "null"
}
],
"title": "Recipe",
"default": null,
"description": "The `recipe` from an earlier run. Pass it to clean a new file with the same column types and rules."
},
"filename": {
"type": "string",
"title": "Filename",
"default": "",
"description": "File name with extension (e.g. customers.csv). Required with content_base64 so the format is known."
},
"required": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Required",
"default": null,
"description": "Columns a row must have; rows missing one go to the review list."
},
"dedupe_on": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Dedupe On",
"default": null,
"description": "Columns that identify a record; rows matching on them merge into one. Default: the email column, else the whole row."
},
"phone_format": {
"type": "string",
"title": "Phone Format",
"default": "national",
"description": "'national' like (415) 555-0100, or 'e164' like +14155550100."
},
"phone_region": {
"type": "string",
"title": "Phone Region",
"default": "US",
"description": "Two-letter country for phone numbers written without a country code, e.g. US, GB, DE."
},
"content_base64": {
"type": "string",
"title": "Content Base64",
"default": "",
"description": "The file itself, base64-encoded, for small files you hold locally. Use this or url."
}
}
}{
"title": "Clean a CSV or Excel file",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Sign-in required
Resources
Sign-in required
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 4845 ms
- 95th percentile latency
- 4845 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 4845 ms · metadata changed · refuses unauthenticated resources/list (HTTP 401)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http patchwell-mcp https://patchwell.io/mcp/Codex
codex mcp add patchwell-mcp --url https://patchwell.io/mcp/Cursor
{
"mcpServers": {
"patchwell-mcp": {
"url": "https://patchwell.io/mcp/"
}
}
}Cline
{
"mcpServers": {
"patchwell-mcp": {
"type": "streamableHttp",
"url": "https://patchwell.io/mcp/",
"disabled": false
}
}
}VS Code
{
"servers": {
"patchwell-mcp": {
"type": "http",
"url": "https://patchwell.io/mcp/"
}
}
}Gemini CLI
gemini mcp add --transport http patchwell-mcp https://patchwell.io/mcp/Claude Desktop
https://patchwell.io/mcp/Windsurf
{
"mcpServers": {
"patchwell-mcp": {
"serverUrl": "https://patchwell.io/mcp/"
}
}
}Let your agent find its tools
Find servers like Patchwell MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Patchwell MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.