{"name":"io.github.06ketan/medium-ops","slug":"06ketan-medium-ops","title":"medium-ops","description":"Medium CLI + 23-tool MCP server. Your IDE drafts replies. No API keys.","url":"https://mcp.market/server/06ketan-medium-ops","rating":null,"grade":"B","score":72,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":9,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-05-24T13:39:29.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/06ketan/medium-ops","website":"https://medium-ops.chavan.in","version":"0.1.2","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"medium-ops","version":"0.1.2","runtimeHint":"uvx","transport":{"type":"stdio"},"packageArguments":[{"value":"mcp","type":"positional"},{"value":"serve","type":"positional"}],"environmentVariables":[{"description":"Legacy Medium Integration Token (api.medium.com/v1/*). Optional. Generate at medium.com/me/settings → 'Integration tokens' (note: Medium stopped issuing new tokens in 2023).","isSecret":true,"name":"MEDIUM_INTEGRATION_TOKEN"},{"description":"Medium 'sid' cookie value from medium.com (Application → Cookies). Used for authenticated reads + dashboard GraphQL.","isSecret":true,"name":"MEDIUM_SID"},{"description":"Medium 'uid' cookie value. Required alongside sid for some authenticated endpoints.","name":"MEDIUM_UID"},{"description":"Medium 'xsrf' cookie value. Required for any dashboard write (post_response, publish_post, delete_post, draft updates).","isSecret":true,"name":"MEDIUM_XSRF"},{"description":"Cloudflare 'cf_clearance' cookie. Only required when Cloudflare challenges your IP for dashboard write calls.","isSecret":true,"name":"MEDIUM_CF_CLEARANCE"},{"description":"Your Medium handle (without the @). Required for the public RSS read path so the client knows whose feed to fetch.","name":"MEDIUM_USERNAME"},{"description":"Override path to the mcp.json file the auth layer reads. Defaults to ~/.cursor/mcp.json.","name":"MEDIUM_OPS_MCP_PATH"},{"description":"Optional: 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.","name":"MEDIUM_OPS_LLM_CMD"}]}],"tools":[],"scan":{"score":72,"grade":"B","scanned_at":"2026-09-27T21:49:09.178Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:49:09.108Z","components":{"code":{"score":25,"max":25,"notes":["19 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":8,"max":15,"notes":["last push 126 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"medium-ops","version":"0.1.2","found":true,"dependencyCount":15,"publishedAt":"2026-05-03T06:02:54.429715Z"}],"repo":{"found":true,"owner":"06ketan","repo":"medium-ops","archived":false,"pushedAt":"2026-05-24T13:39:29Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/57368152?v=4","ownerCreatedAt":"2019-11-04T18:18:28Z","license":"MIT"},"icon":{"url":"https://medium-ops.chavan.in/favicon.ico?favicon.0x3dzn~oxb6tn.ico","source":"site","width":256,"height":256},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-05-24T13:39:29.000Z","score":9}}}},"grade_history":[],"reviews":[]}