Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MEDIUM_BROWSERNoDefault browser for open_in_medium. Any app name from /Applications, or `default` for your system browser. Uses Safari unless told otherwise.Safari
MEDIUM_INTEGRATION_TOKENNoLegacy Medium integration token created before January 2025. Setting one enables direct publishing tools such as get_medium_profile, list_my_publications, upload_image and create_post.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Tools for reading Medium and preparing articles for it.

Reading uses Medium's public RSS feeds, which return only the ~10 newest stories for a user, publication or tag. Use include_content=true only when you need the full text (it is much longer).

Before publishing or pasting anything into Medium, run prepare_article on the Markdown and show the user its warnings. Medium has no tables, no nested lists, no footnotes and only two heading sizes.

Without a token (the usual case), "publishing" is a hand-off: on macOS use open_in_medium, which puts the article on the clipboard and opens a new Medium story in the user's browser; they press Cmd+V and publish themselves. Elsewhere, use export_article, which writes an HTML page to copy from. Never try to log in to Medium or automate the browser.

Publishing tools exist only if the user configured a legacy integration token. create_post defaults to publish_status="draft". Never use "public" or "unlisted" unless the user explicitly asked for that in this conversation. Medium's API cannot edit or delete a post after it is created.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_user_storiesA

Get the most recent stories by a Medium author (newest first).

get_publication_storiesA

Get the most recent stories from a Medium publication.

get_tag_storiesA

Get the latest stories Medium lists under a tag. Useful for spotting what's being written about a topic.

prepare_articleA

Check Markdown against what Medium supports and return a cleaned version.

Converts tables to aligned text, demotes extra/deep headings, turns checklists into emoji, and reports anything it can't fix (nested lists, footnotes, raw HTML, missing alt text, title length, tags). Also returns word count and reading time.

export_articleA

Write the article as an HTML page to copy-paste into Medium's editor (no token needed).

Runs prepare_article first, then converts to HTML. The user opens the file in a browser, selects all, copies, and pastes into medium.com/new-story; Medium keeps headings, bold, links, lists, quotes, images and code blocks. Tell the user the output path and pass on the warnings.

open_in_mediumA

Copy the article to the clipboard as formatted text and open a new Medium story (macOS).

No login or browser automation: it opens medium.com/new-story in the user's normal browser, where they're already signed in, and they press Cmd+V. Replaces whatever is on the clipboard. Show the user the warnings, and the tags/subtitle to enter in Medium's publish dialog. Nothing is published.

Prompts

Interactive templates invoked by user choice

NameDescription
draft_from_codeTurn code in the current project into a Medium article draft.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation4/5

The three story-fetching tools are clearly differentiated by source (author, publication, tag), and the article pipeline tools have distinct roles. There is some overlap between export_article and open_in_medium since both prepare content for pasting into Medium, but their descriptions make the file-vs-clipboard distinction clear.

Naming Consistency5/5

All six tools follow a consistent snake_case verb_noun pattern: get_user_stories, get_publication_stories, get_tag_stories, prepare_article, export_article, open_in_medium. The convention is predictable throughout.

Tool Count5/5

Six tools is well-scoped for a Medium writing and publishing workflow. Each tool maps to a distinct step: research, validation, export, and clipboard delivery.

Completeness4/5

The surface covers the core workflow from story discovery to article preparation and delivery into Medium's editor. Direct publishing is intentionally excluded, and minor gaps like retrieving a single story's full content are not essential for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues