patchlog-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@patchlog-mcpAdd a changelog entry for the export feature we just shipped and publish it."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
patchlog-mcp
MCP server for Patchlog. Write, update, and publish your changelog straight from Claude Code, Claude Desktop, Cursor, or any other MCP client. Ship a feature, then tell your agent "add a changelog entry for this" and it lands on your public changelog.
Requirements
A Patchlog account on the Pro plan (the API is a Pro feature)
An API token from Settings > API Tokens
Node.js 18 or newer
Related MCP server: Agentic CMS
Setup
Claude Code
claude mcp add patchlog -e PATCHLOG_API_TOKEN=your-token-here -- npx -y patchlog-mcpClaude Desktop
Add this to your claude_desktop_config.json:
{
"mcpServers": {
"patchlog": {
"command": "npx",
"args": ["-y", "patchlog-mcp"],
"env": {
"PATCHLOG_API_TOKEN": "your-token-here"
}
}
}
}Cursor
Add the same block to .cursor/mcp.json in your project, or to ~/.cursor/mcp.json globally:
{
"mcpServers": {
"patchlog": {
"command": "npx",
"args": ["-y", "patchlog-mcp"],
"env": {
"PATCHLOG_API_TOKEN": "your-token-here"
}
}
}
}Remote server (no Node required)
Patchlog also serves this same tool set as a remote MCP endpoint. Point your client at https://patchlog.io/mcp with your API token as a bearer token:
claude mcp add --transport http patchlog https://patchlog.io/mcp --header "Authorization: Bearer your-token-here"Tools
Tool | What it does |
| List your projects with their public changelog URLs |
| List entries for a project, filterable by status and type |
| Fetch one entry with its full Markdown content |
| Create an entry (draft by default, or publish immediately, or schedule with a future date) |
| Change any field of an existing entry |
| Push a draft or scheduled entry live right now |
Configuration
Environment variable | Required | Default |
| Yes | none |
| No |
|
Example prompts
"Add a changelog entry for the export feature we just shipped and publish it."
"Draft changelog entries for everything in this release branch, I will review them in Patchlog."
"Schedule a changelog entry about the pricing change for next Monday 9am."
Development
npm install
npm test
npm run buildLicense
MIT
Available Tools
6 toolscreate_entryCreate a changelog entryAInspect
Create a changelog entry in a project. Defaults to a draft; pass status "published" to go live immediately, or "published" with a future published_at to schedule it. Content is Markdown.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| title | Yes | ||
| status | No | Defaults to draft | |
| content | Yes | Entry body in Markdown | |
| project_id | Yes | The project id (ULID) | |
| published_at | No | ISO 8601 datetime; a future value schedules the entry |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description meaningfully extends the annotations by explaining default draft behavior, immediate publishing via status 'published', scheduling via a future published_at, and Markdown content. It does not mention response shape or error cases, but the non-idempotent, mutating nature is already signaled by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences deliver purpose, key status behavior, and content format with no filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core creation workflow, defaults, scheduling, and Markdown content, while required parameters are captured in the schema. Minor gaps like return value and error behavior are acceptable for a simple creation tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 67% schema coverage, the schema already documents several parameters, and the description adds the crucial interaction between status and published_at (draft by default, immediate publish, scheduled publish). It does not elaborate on the 'type' enum, but those values are self-descriptive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Create a changelog entry in a project.' This clearly separates create_entry from its siblings (list_projects, list_entries, get_entry, update_entry, publish_entry) without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose create_entry versus update_entry or publish_entry, and no explicit when-not-to-use conditions. The description does explain status behavior, but that is parameter usage rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_entryGet a changelog entryARead-onlyInspect
Fetch a single changelog entry by id, including its Markdown content and status.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | The entry id | |
| project_id | Yes | The project id (ULID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that the response includes Markdown content and status, which is useful, but it does not disclose error behavior, status values, or other runtime traits beyond what annotations and the schema imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence contains the essential information: the operation, target, and what is included. There is no filler or repetition of schema details, and the most important qualifier ('single ... by id') leads the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with two fully documented parameters and readOnlyHint/openWorldHint annotations, the description gives enough context to invoke correctly and know what kind of content to expect. The only minor gap is the absence of any statement about not-found behavior or the exact response shape, but this is not critical given the simple get-by-id pattern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both project_id and entry_id have descriptions in the schema, so the description does not need to repeat them. It adds no extra parameter-level meaning beyond 'by id', which is already captured by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') with a clearly defined resource ('a single changelog entry by id') and states key returned fields (Markdown content and status). This clearly distinguishes it from siblings like list_entries, create_entry, update_entry, and publish_entry without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by id' and 'single' communicate that this is the correct tool when the agent already has an entry_id and needs the full entry content/status. It does not explicitly mention alternatives or state when not to use it, but the usage context is strongly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entriesList changelog entriesARead-onlyInspect
List changelog entries for a project. By default only live published entries are returned; pass status "draft" for drafts or "all" for everything including scheduled entries.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| status | No | ||
| per_page | No | ||
| project_id | Yes | The project id (ULID) from list_projects |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds useful behavioral detail beyond annotations: default filtering to published entries and the meaning of the status values including scheduled entries in 'all'. This helps the agent predict results accurately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, with the core purpose front-loaded. The second sentence efficiently adds the key behavioral nuance about status filtering without repeating schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is largely complete for a simple read-only listing tool: it states the resource, default filtering, and how to use status. It does not mention pagination semantics for per_page or return value shape, but the schema bounds and tool name make those less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, but the description compensates by explaining the status parameter's default and allowed behaviors. The type and per_page parameters rely on their self-explanatory enums and numeric bounds, and project_id already has a helpful schema description pointing to list_projects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource — "List changelog entries for a project" — which clearly states what the tool does. It naturally differentiates from siblings like get_entry (singular), create_entry, update_entry, publish_entry, and list_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context by explaining the default behavior — only live published entries — and how to request drafts or all entries via the status parameter. It does not explicitly name alternatives or exclusion conditions, but the usage context is strong enough for an agent to decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList projectsARead-onlyInspect
List the Patchlog projects the API token owns, with each project id, name, slug, public changelog URL, and entry count.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only safety profile is covered. The description adds useful context by stating the ownership scope and the exact fields returned, but it does not mention pagination, network interaction, or any other behavioral caveats. This is adequate given the low-risk read-only nature, but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that leads with the action and resource, then compacts all relevant output details into a short list. There is no repetition of the title or schema, and every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, zero-parameter, read-only listing tool, the description is complete: it states the resource, the ownership scope, and the returned fields. The annotations cover safety, and no output schema exists to add more. An agent has enough information to invoke the tool correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to clarify beyond the schema, which already covers the parameter space completely. The description's mention of output fields is more relevant to behavior than to parameter semantics, so the baseline of 4 for a zero-parameter tool is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('Patchlog projects'), and further narrows scope to those owned by the API token. It also enumerates the returned fields, making the tool's purpose unmistakable and distinct from the sibling entry-management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when to use the tool: to retrieve the projects associated with the API token. While it does not explicitly name alternatives or say when not to use it, the sibling tools are all entry-focused, so the intended context is clear enough without excluding edge cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publish_entryPublish a changelog entryAIdempotentInspect
Publish a draft or scheduled entry right now. An entry that is already live keeps its original publish date.
| Name | Required | Description | Default |
|---|---|---|---|
| entry_id | Yes | ||
| project_id | Yes | The project id (ULID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-readonly, non-destructive, idempotent operation. The description adds useful behavioral context by stating that an already-live entry retains its original publish date, which clarifies the tool's idempotent behavior and helps an agent predict outcomes for different entry states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary action is front-loaded, and the second sentence adds a meaningful edge-case behavior. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with useful annotations, the description covers the key behavior: immediate publishing and the live-entry edge case. It does not describe the response format or error conditions, but the absence of an output schema and the low complexity make this acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents project_id but not entry_id, so description-level parameter coverage is partial. The description implies that entry_id identifies the entry to publish, but it does not add explicit detail about the id format, constraints, or how the two parameters interact beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Publish'), a specific resource ('a draft or scheduled entry'), and the timing ('right now'). It clearly distinguishes publish_entry from siblings like create_entry, update_entry, and get_entry because the operation is explicit and the target state is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: to publish a draft or scheduled entry immediately. It does not explicitly name alternatives or exclusions, but the distinction from create/update/get/list is strongly implied by the verb and target states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_entryUpdate a changelog entryAIdempotentInspect
Update fields of an existing entry. Only the fields you pass are changed. Setting status back to draft unpublishes the entry.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| title | No | ||
| status | No | ||
| content | No | Entry body in Markdown | |
| entry_id | Yes | ||
| project_id | Yes | The project id (ULID) | |
| published_at | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnly=false, idempotent=true, and destructive=false, and the description adds value by revealing PATCH-like behavior and the side effect that setting status to draft unpublishes the entry. No contradiction with the annotations; the description complements them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each with a distinct job: identify the scope, state the update semantics, and flag the notable side effect. No filler or repetition of schema contents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential partial-update behavior and the unpublish nuance, but for a seven-parameter mutation with no output schema and a sibling publish_entry, it leaves invocation guidance somewhat thin. An agent would still need to inspect enum values and infer semantics for several parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, yet the description provides almost no parameter-level detail except the semantic effect of the status field. Fields like type, title, content, and published_at are left to names/enums, so the description fails to compensate for the schema's sparse documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a clear verb-resource pair ('Update fields of an existing entry') and distinguishes the operation from creation via 'existing'. It does not explicitly differentiate from publish_entry, which could be used for status changes, but the broad update framing is still unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States partial-update semantics ('Only the fields you pass are changed') and calls out a key behavior for status changes. However, it gives no explicit guidance about when to prefer publish_entry for publishing or when create_entry is the right alternative, leaving the overlap with siblings unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
create_entry - First observed
get_entry - First observed
list_entries - First observed
list_projects - First observed
publish_entry - First observed
update_entry
TDQS
The tools cleanly separate project listing from entry operations, and get/create/update have distinct roles. publish_entry overlaps slightly with update_entry's ability to change status, but its specific 'publish now' semantics are clearly differentiated.
All tools follow a consistent snake_case verb_noun pattern (list_, get_, create_, update_, publish_), making the set predictable and easy to navigate.
Six tools is appropriately scoped for a changelog management server. Each tool maps to a core operation without unnecessary redundancy.
The core entry lifecycle is covered: list, get, create, update, and publish. The only notable gap is a delete_entry tool, which would make lifecycle coverage complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Cloudflare Workers MCP server: ai-changelog-writer
MCP server for generating rough-draft project plans from natural-language prompts.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for Alog, an AI × Human blog platform. Enables AI agents to post logs, create and publish articles, search content, and interact socially on alog.world.19201MIT
- AlicenseNot gradedqualityBmaintenanceOpen-source MCP server that turns any CMS backend into an AI-agent-ready content management system. It provides tools for content CRUD, idea management, and publication tracking, with safety features requiring human approval for publishing.MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server for AI agents to log activities, query logs, and leave notes for each other, featuring a web UI and REST API.MIT
- AlicenseAqualityCmaintenanceA universal MCP server that enables AI assistants to safely manage changelog files by writing structured records to a JSONL store and deterministically generating markdown changelogs.15MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/michaelyousrie/patchlog-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server