MCP server
Connect
- Endpoint
- https://release-ripple-roadmap.lovable.app/mcp
- Transport
- Streamable HTTP (JSON-RPC over POST)
- Reading
- No authentication — published releases and public roadmap items only
- Writing
- HTTP header
Authorization: Bearer lp_…with a LogPulse API key - Server name
- logpulse
- Server card
- https://release-ripple-roadmap.lovable.app/mcp/server-card
To read changelogs, add the server with no key:
claude mcp add --transport http logpulse https://release-ripple-roadmap.lovable.app/mcpLovable, Claude Desktop, Windsurf and other clients take the same URL under their “custom MCP server” or “connector” setting. Clients that support discovery can read the endpoint, protocol versions, the optional API-key header and every tool's input schema from the server card (also listed in the API catalog).
Read tools
Every tool returns a readable text answer plus structuredContent JSON with the same data. Tools that take a changelog use its slug — find one with search_changelogs. Drafts, scheduled releases and private roadmap items are never returned. For projects that aren't on LogPulse, convert_changelog turns their CHANGELOG.md or GitHub releases into the same shape.
search_changelogs
Find a public LogPulse changelog by package name, repository, product name or slug. Returns slugs to use with the other tools.
| Field | Type | Description |
|---|---|---|
| query* | string | Package (e.g. @acme/analytics), repository (acme/analytics-js), product name or slug. |
| limit | integer (1–25) | Maximum results. Default 10. |
{
"query": "@acme/analytics"
}get_changelog
Get a changelog's name, repository, packages, latest version and feed links.
| Field | Type | Description |
|---|---|---|
| changelog* | string | Changelog slug, e.g. "acme". Use search_changelogs to find it from a package or repository name. |
{
"changelog": "acme"
}list_releases
List published releases, newest first, with versions, breaking changes, migration steps and deprecations.
| Field | Type | Description |
|---|---|---|
| changelog* | string | Changelog slug, e.g. "acme". Use search_changelogs to find it from a package or repository name. |
| limit | integer (1–100) | Maximum releases. Default 20. |
| since | string (date-time) | Only releases published at or after this ISO 8601 time. |
| breaking_only | boolean | Only releases that contain breaking changes. |
{
"changelog": "acme",
"limit": 5
}get_release
Get one release by version (2.0.0 or v2.0.0) or URL slug, with full notes, breaking changes and deprecations.
| Field | Type | Description |
|---|---|---|
| changelog* | string | Changelog slug, e.g. "acme". Use search_changelogs to find it from a package or repository name. |
| release* | string | Version like 2.0.0, or the release's URL slug. |
{
"changelog": "acme",
"release": "2.0.0"
}compare_versions
Answer “what changed between two versions, and what do I need to change?”: breaking changes with migration steps, deprecations and every release after `from` up to `to`.
| Field | Type | Description |
|---|---|---|
| changelog* | string | Changelog slug, e.g. "acme". Use search_changelogs to find it from a package or repository name. |
| from | string | The version the user is on, e.g. 1.4.0. Omit to start from the first release. |
| to | string | The version to upgrade to. Omit for the latest. |
| format | "markdown" | "json" | markdown (default) returns an upgrade guide; json returns structured data. |
{
"changelog": "acme",
"from": "1.4.0",
"to": "2.0.0"
}get_roadmap
Get the public roadmap: items under review, planned, in progress and shipped, with vote counts.
| Field | Type | Description |
|---|---|---|
| changelog* | string | Changelog slug, e.g. "acme". Use search_changelogs to find it from a package or repository name. |
| status | "under_review" | "planned" | "in_progress" | "shipped" | Only items in this column. |
{
"changelog": "acme",
"status": "in_progress"
}convert_changelog
Turn any project's CHANGELOG.md text, or a GitHub release, releases page, repository or changelog file URL, into a machine-readable changelog: versions, dates, breaking changes with migration steps, and deprecations. Works for projects that aren't on LogPulse.
| Field | Type | Description |
|---|---|---|
| url | string (GitHub URL) | A release (…/releases/tag/v1.2.0), the releases page, a repository or a CHANGELOG.md file. Use this or markdown. |
| markdown | string (≤900 KB) | The changelog text itself. Use this or url. |
| name | string | Project name to use in the summary. |
| include_notes | boolean | Include each release's full notes in the JSON. Default false. |
{
"url": "https://github.com/vercel/next.js/releases/tag/v15.0.0"
}Write tools
publish_release and post_roadmap_update write to your own changelog, so an agent can publish the release note right after it ships. They act with a LogPulse API key that your MCP client sends as an HTTP header — set it once in the client config, from an environment variable or a password prompt. Keys are never tool arguments, so they don't end up in prompts or chat transcripts.
- Create a key in Dashboard → Agents & API with the
releases:writeand/orroadmap:writepermission. - Store it as
LOGPULSE_API_KEYin your environment, then add the server with the header:
claude mcp add --transport http logpulse https://release-ripple-roadmap.lovable.app/mcp \
--header "Authorization: Bearer $LOGPULSE_API_KEY"Without a key, or with a key missing the permission, these tools return an error that says what to fix. Read tools keep working either way. Free plan limits apply to releases published from agents too.
publish_release
Publish a release note to your own changelog right after shipping — with version, breaking changes, migration steps and deprecations. Goes live in the hosted changelog, the widget and release emails.
Needs an API key with the releases:write permission.
| Field | Type | Description |
|---|---|---|
| title* | string (≤140) | Short, user-facing headline. |
| version | string | Semantic version like 2.1.0 (a leading v is dropped). Must be unique in your changelog. |
| summary | string (≤280) | One-sentence summary shown in lists and feeds. |
| body | string (markdown) | Full release notes. |
| category | "new" | "improved" | "fixed" | Default new. |
| labels | string[] (≤10) | Short labels, e.g. API, Dashboard. |
| status | "published" | "draft" | published (default) goes live now, or at published_at. draft waits for a human to review it. |
| published_at | string (date-time) | Schedule for later. Defaults to now. |
| breaking_changes | { summary, affects?, migration? }[] | What breaks for existing users, each with migration steps (markdown). |
| deprecations | { item, replacement?, removal_version?, note? }[] | What is deprecated, its replacement and planned removal version. |
| author_name | string | Shown as the author. Defaults to the API key's name. |
| slug | string | URL slug. Generated from the title when omitted. |
{
"title": "Webhooks retry automatically",
"version": "2.1.0",
"category": "improved",
"body": "Failed webhook deliveries now retry with backoff for 24 hours.",
"deprecations": [
{
"item": "retry_once option",
"replacement": "retry_policy",
"removal_version": "3.0.0"
}
]
}post_roadmap_update
Add an item to your roadmap, or update one by id — move it to in progress or shipped, change its ETA, or link the release that shipped it.
Needs an API key with the roadmap:write permission.
| Field | Type | Description |
|---|---|---|
| id | string (uuid) | Update this item instead of creating a new one. get_roadmap lists ids. |
| title | string (≤140) | Item title. Required when creating. |
| description | string | null | What and why, in a sentence or two. |
| status | "under_review" | "planned" | "in_progress" | "shipped" | Roadmap column. New items default to planned. |
| label | string | null | Short tag, e.g. API or Mobile. |
| eta | string | null | Free text, e.g. Q3 or July. |
| is_public | boolean | Show on the public roadmap. Defaults to true for new items. |
| linked_release | string | null | Release id, version or slug that shipped this item. |
{
"id": "3f0c5c1e-7b7a-4b9e-9a54-2c1d8f6a1b20",
"status": "shipped",
"linked_release": "2.1.0"
}Rate limits
- 120 requests per minute per IP address on the MCP server, and 120 per minute per API key.
convert_changelogalso counts toward the free converter's budget: 10 conversions per minute and 100 per day per IP, shared with the REST endpoint.- Over the limit, the server answers HTTP
429with aRetry-Afterheader (seconds). Every response carriesRateLimit-Limit,RateLimit-RemainingandRateLimit-Reset. - Need more for a CI pipeline or a large agent fleet? Contact us and we'll raise it.
Example prompts
- “Using the LogPulse changelog "acme", what changed between v1.4.0 and v2.0.0, and what do I need to change in my code?”
- “We use @acme/analytics 1.6 — is anything we rely on deprecated?”
- “Upgrade this project to the latest Acme SDK and apply every migration step.”
- “What is Acme building next? Check their roadmap.”
- “Convert the changelog at github.com/vitejs/vite and tell me what breaks between Vite 6 and 8.”
- “We just shipped cursor pagination — publish it to our LogPulse changelog as 2.1.0 and mark the roadmap item shipped.”