Medium Blog MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DATABASE_URL | Yes | The SQLite database URL for storing sessions and drafts. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_blog_sessionC | Start a new blog writing session |
| get_session_statusC | Check current progress of a blog session |
| list_sessionsC | List all blog sessions |
| research_topicB | Research topic from multiple sources + fetch relevant images Sources:
|
| get_research_summaryB | ⭐ USER CHECKPOINT: Review all research before proceeding Returns detailed summary of all sources, images, themes, and credibility scores |
| add_custom_sourceC | Add additional source manually |
| approve_researchC | ⭐ USER APPROVES research to proceed to outline generation |
| request_more_researchA | Request additional focused research |
| generate_outlineB | Generate blog outline - Claude Desktop will create the outline based on research This tool provides the research context and instructions. Claude (you) should:
|
| save_outlineC | Save the generated outline to database |
| modify_outlineB | Modify outline sections, titles, or structure |
| approve_outlineA | ⭐ USER APPROVES outline to proceed with content generation |
| generate_full_contentA | Generate complete blog post - Claude Desktop will write the blog based on outline This tool provides the outline and research context. Claude (you) should:
|
| save_draftB | Save the generated blog draft to database |
| get_full_draftA | Retrieve the complete generated blog post |
| regenerate_sectionC | Regenerate specific section with user feedback |
| prepare_plagiarism_chunksB | Split content into <10k character chunks for external plagiarism tools |
| record_plagiarism_resultC | ⭐ USER records results from external plagiarism check |
| get_plagiarism_summaryC | Summary of all plagiarism checks performed |
| run_quality_analysisB | Run automatic quality checks on final draft Checks:
|
| approve_final_draftB | ⭐ USER FINAL APPROVAL - Mark blog as ready for export |
| export_to_mediumC | Export blog to Medium-ready markdown format Creates:
|
| get_export_filesC | Retrieve all export files for download |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 23 tools
Most tools map to distinct workflow stages (research, outline, draft, plagiarism, QA, export), but a few could be confused: generate_outline/generate_full_content are agent instructions that overlap conceptually with save_outline/save_draft, and the multiple get_*_summary tools require reading descriptions to distinguish.
Every tool follows a consistent verb_noun snake_case pattern (create_*, get_*, list_*, approve_*, save_*, export_*). The verbs are predictable and the workflow stage is clear from the name.
At 23 tools, the surface feels heavy and falls in the borderline 16-25 range, though the multi-stage workflow gives most tools a purpose. Several session and file getters could potentially be consolidated.
The end-to-end pipeline is covered (research → outline → draft → plagiarism → QA → export), but there are notable gaps: sessions can be created/listed but not updated/deleted, saved outlines cannot be retrieved directly, and the server exports markdown rather than publishing to Medium.