
medium-ops
If you're managing a Medium presence from Cursor, Claude Desktop, or OpenCode, this server wires up 23 tools for reading stories via RSS and GraphQL, posting responses, clapping, checking stats, and publishing drafts. The reply engine is clever: your IDE's LLM drafts the comment using propose_reply and confirm_reply tools, so you skip separate API keys. Install is one uvx command that drops config into your MCP host. Auth uses Medium's integration token for writes and a session cookie for dashboard reads. Everything defaults to dry-run with audit logs and dedup checks in SQLite. Includes a standalone CLI if you want to script feed pulls or bulk reply workflows outside the MCP flow.
- tools
- 7
- auth
- Secret needed
- transport
- STDIO
- env vars
- 8
- last updated
- May 3, 2026
Tools
7 toolsPublic tool metadata for what this MCP can expose to an agent.
get_unanswered_responsesWorklist — responses where you haven't replied.
Worklist — responses where you haven't replied.
No parameter schema in public metadata yet.
propose_replyDry-run only. Returns a token + payload preview.
Dry-run only. Returns a token + payload preview.
No parameter schema in public metadata yet.
confirm_replyPosts the staged reply by token. Idempotent via dedup DB. Token TTL 5 min.
Posts the staged reply by token. Idempotent via dedup DB. Token TTL 5 min.
No parameter schema in public metadata yet.
bulk_draft_repliesFile-based offline review loop.
File-based offline review loop.
No parameter schema in public metadata yet.
send_approved_draftsFile-based offline review loop.
File-based offline review loop.
No parameter schema in public metadata yet.
audit_searchRead the audit log + dedup counts.
Read the audit log + dedup counts.
No parameter schema in public metadata yet.
dedup_statusRead the audit log + dedup counts.
Read the audit log + dedup counts.
No parameter schema in public metadata yet.
Sponsors
Configuration
MEDIUM_INTEGRATION_TOKENsecretLegacy Medium Integration Token (api.medium.com/v1/*). Optional. Generate at medium.com/me/settings → 'Integration tokens' (note: Medium stopped issuing new tokens in 2023).
MEDIUM_SIDsecretMedium 'sid' cookie value from medium.com (Application → Cookies). Used for authenticated reads + dashboard GraphQL.
MEDIUM_UIDMedium 'uid' cookie value. Required alongside sid for some authenticated endpoints.
MEDIUM_XSRFsecretMedium 'xsrf' cookie value. Required for any dashboard write (post_response, publish_post, delete_post, draft updates).
MEDIUM_CF_CLEARANCEsecretCloudflare 'cf_clearance' cookie. Only required when Cloudflare challenges your IP for dashboard write calls.
MEDIUM_USERNAMEYour Medium handle (without the @). Required for the public RSS read path so the client knows whose feed to fetch.
MEDIUM_OPS_MCP_PATHOverride path to the mcp.json file the auth layer reads. Defaults to ~/.cursor/mcp.json.
MEDIUM_OPS_LLM_CMDOptional: override the host CLI used by the unattended daemon path (default: auto-detect claude / cursor-agent / codex on PATH). Use {prompt} placeholder if your CLI takes the prompt as an arg.
Readme
Details
- Repository
- github.com/06ketan/medium-ops
- Website
- medium-ops.chavan.in
- Package
medium-ops- Transport
- STDIO
- Auth
- Required
- Registry
- MCP registry, active