io.github.hydrojwh/promptready-mcp
Convert PDF/CSV to Markdown with AI-powered OCR via the PromptReady cloud API.
What can you do with io.github.hydrojwh/promptready-mcp?
- Browser Google login (tokens stay on your machine)
get_credits,convert_pdf,get_status,wait_and_download,- Durable results:
convert_pdfreturns alog_id;wait_and_download - Slash commands for humans:
/promptready:convertand five more (below) - Saved convert defaults (engine, tables, images) — not on every call
- Factory default: PaddleOCR-VL, tables on, images off
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
promptready-mcpclaude mcp add promptready-mcp -- uvx promptready-mcp==0.4.0
{
"mcpServers": {
"promptready-mcp": {
"command": "uvx",
"args": [
"promptready-mcp==0.4.0"
]
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
PromptReady MCP
Official Model Context Protocol client for PromptReady — convert PDF/CSV to Markdown from AI agents (Grok, Claude Code, Cursor, and other MCP hosts).
Same PromptReady account and credits as the web app.
Data flow: your local PDF/CSV files are uploaded to the PromptReady cloud (
promptready.space) for OCR processing. Converted Markdown is downloaded back to your machine. Files are auto-deleted from the server 3 hours after your batch finishes. No long-term storage.
Features
- Browser Google login (tokens stay on your machine)
get_credits,convert_pdf,get_status,wait_and_download,list_conversions- Durable results:
convert_pdfreturns alog_id;wait_and_download/get_statusaccept it and resolve via the database, so a server restart, a redeploy, or a second back-to-back convert can no longer orphan a finished job (results are kept 3 hours) - Slash commands for humans:
/promptready:convertand five more (below) - Saved convert defaults (engine, tables, images) — not on every call
- Factory default: PaddleOCR-VL, tables on, images off
Install
As a Claude Code plugin (recommended)
Once listed in the Claude Code plugin directory:
/plugin install promptready
As a standalone MCP server
pip install promptready-mcp
Or run it without installing:
uvx promptready-mcp
From source
git clone https://github.com/hydrojwh/promptready-mcp.git
cd promptready-mcp
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
Login (once per machine)
promptready-mcp-login
If you installed with uvx, the login command lives in the same package:
uvx --from promptready-mcp promptready-mcp-login
Either opens Google OAuth and saves credentials to
~/.config/promptready/credentials.json (file mode 0600). That path is in your
home directory, so it survives uvx cache resets. You can also log in from inside
an MCP host by calling the login tool.
After you sign in, the browser returns to http://127.0.0.1:18765/callback — a
local page started by the login command. No Supabase configuration is needed.
Email login fallback
If browser-based Google login is not an option, the same command accepts email and password:
promptready-mcp-login --email you@x.com
Leave out --password and you will be prompted for it instead — this keeps the
password out of your shell history.
Already have an access token? Set PROMPTREADY_ACCESS_TOKEN in the environment
(MCP host or shell). Environment variables take precedence over the saved
credentials file.
MCP host config
Fastest: let your AI agent install it
If you are already in an MCP-capable agent, skip the JSON editing and just ask:
Install the PromptReady MCP server for me. The PyPI package is
promptready-mcp(stdio commandpromptready-mcp). Add it to your MCP config, then I will run thelogintool.
In Claude Code the agent can use the built-in CLI:
claude mcp add promptready -- promptready-mcp
Reconnect after changing config
Hosts do not pick up MCP config changes mid-session. After changing the
config, restart the host or reconnect the server — in Claude Code, open the
/mcp panel and reconnect.
The /mcp panel shows server status and lists the connected servers'
tools, but it does not run them: picking a tool in that list will
not invoke it. Tools are invoked through normal conversation — ask the
agent to convert a file and it calls convert_pdf for you. If a call
fails, reconnect from the panel first.
Claude Code
claude mcp add promptready -- promptready-mcp
The default scope is local (this project only). Use --scope user to
register it for all your projects, or --scope project to share the
registration through a committed .mcp.json.
Cursor
Add to ~/.cursor/mcp.json (or .cursor/mcp.json for a single project):
{
"mcpServers": {
"promptready": {
"command": "promptready-mcp"
}
}
}
Grok
[mcp_servers.promptready]
command = "promptready-mcp"
enabled = true
tool_timeout_sec = 3600
Claude Desktop / generic JSON
{
"mcpServers": {
"promptready": {
"command": "promptready-mcp"
}
}
}
No access token in config files required after login.
Host cannot find promptready-mcp
GUI hosts start servers with a narrow PATH, so a console script installed by
pip install --user is often invisible to them — the host reports a spawn
failure or "server disconnected" rather than a missing command.
Two reliable fixes:
{ "mcpServers": { "promptready": {
"command": "uvx", "args": ["promptready-mcp"] } } }
or point at the absolute path of the script:
/ABS/PATH/.venv/bin/promptready-mcp.
Tools
| Tool | Purpose |
|---|---|
login / logout | Browser auth / clear local credentials |
get_credits | Credit balance |
get_convert_settings / set_convert_settings | Saved convert defaults |
convert_pdf | Upload path → queue (optional wait) |
get_status | Status — by log_id (DB, restart-proof) or session |
wait_and_download | Wait + save .md, by log_id or session |
list_conversions | Recent conversions with log_id, status, downloadable |
Downloaded names follow the web app: {name}_PaddleOCR-VL.md (engine label).
Credits are deducted by the server when a job is queued, exactly as on the web
app. convert_pdf(wait=True) can run for a long time, so give the host a high
tool timeout.
Durable results with log_id (0.4.0)
convert_pdf returns log_id — the id of the conversion record in your
account. Unlike the session status, it survives backend restarts and later
converts:
convert_pdf(path="report.pdf") → {"log_id": "…uuid…", …}
wait_and_download(log_id="…uuid…") → saves report_PaddleOCR-VL-1.6.md
list_conversions(limit=10) → past conversions + their log_ids
Results are downloadable for 3 hours after completion (HTTP 410 after that —
converting again, with fresh credits, is then the only way). If a download
fails for another reason, retry wait_and_download with the same log_id;
never re-run convert_pdf for the same file.
Slash commands
MCP prompts are the human entry point: instead of describing what you
want, you pick a command. Hosts that surface prompts as slash commands
(Claude Code does) show them as /promptready:<name>:
| Slash command | Purpose |
|---|---|
/promptready:login | Log in (opens the browser Google sign-in) |
/promptready:logout | Log out on this machine |
/promptready:credits | Show your credit balance |
/promptready:convert | Convert a PDF/CSV to Markdown |
/promptready:site | Show the PromptReady web app URL |
/promptready:settings | Show — and optionally change — convert defaults |
Each command expands to a short instruction; the agent then calls the
matching tool (login, get_credits, convert_pdf, …) for you.
/promptready:convert optionally takes two positional arguments, input
path then output directory. Pick the command from the slash menu (hosts
may list it as promptready:convert (MCP)) and append the arguments:
/promptready:convert (MCP) report.pdf markdown-out
Arguments are split on whitespace and cannot be quoted, so paths with
spaces do not fit on the command line — run the command bare and give
the paths in chat instead. Line breaks and control characters in
arguments are rejected outright (0.3.8): an argument is interpolated
into the instruction the command expands to, and it must never be able
to start a line of its own. With no arguments the command asks you for
them. The conversion itself always goes through the convert_pdf tool:
never re-run it for the same file while a download is pending — that
queues a fresh conversion and spends fresh credits; the expanded command
tells the agent to call wait_and_download instead.
Hosts that do not map prompts to slash commands simply ignore this section; the tools keep working as before.
Security
- Tokens are never hardcoded in this repository.
- Do not commit
~/.config/promptready/*or.env. - Only use the official package linked from https://promptready.space
- Vulnerability reports: see SECURITY.md
Network access and credentials
What this client talks to, so you can review it before installing:
- Network: HTTPS requests to the PromptReady API at
https://promptready.space(override withPROMPTREADY_BASE_URL, or the base URL saved at login — if you set one, all API traffic, credentials included, goes to that host instead). When a conversion finishes, the Markdown result may be fetched from a short-lived signed download URL that the API returns (served from PromptReady's Cloudflare R2 storage); that request carries no credentials. There is no telemetry and no other third-party host. During browser login a short-lived listener binds to127.0.0.1only, to receive the sign-in callback; your browser, not this client, talks to the sign-in provider. - Files read: the PDF/CSV paths you pass to
convert_pdf, plus this client's own config under~/.config/promptready/(credentials and convert defaults). - Files written: the Markdown results you ask to save; the credentials file
~/.config/promptready/credentials.json(mode 600; override the path withPROMPTREADY_CREDENTIALS_PATH); and your convert defaults in~/.config/promptready/settings.jsonwhen you change settings (mode 600; override withPROMPTREADY_SETTINGS_PATH). Nothing else is left on disk. - Credentials: your own PromptReady account session, created by
promptready-mcp-login(browser or email) or supplied throughPROMPTREADY_ACCESS_TOKEN/PROMPTREADY_REFRESH_TOKEN. The client sends it only to the PromptReady API, never to the signed download URL.
Service terms
Using the cloud API is subject to the Terms of Service and Privacy Policy. This MIT-licensed client does not grant free unlimited conversion. The license covers this client's source code only; use of the PromptReady cloud service (https://promptready.space) remains subject to its Terms of Service and Privacy Policy.
Smoke test (no account)
./scripts/smoke_stdio.sh
License
MIT — see LICENSE.
Frequently asked questions
What is io.github.hydrojwh/promptready-mcp?
Convert PDF/CSV to Markdown with AI-powered OCR via the PromptReady cloud API.
How do I install io.github.hydrojwh/promptready-mcp?
It runs on your machine. In Claude Code: claude mcp add promptready-mcp -- uvx promptready-mcp==0.4.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.hydrojwh/promptready-mcp need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is io.github.hydrojwh/promptready-mcp open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains io.github.hydrojwh/promptready-mcp?
It is published by hydrojwh. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.