Koskamo

LogPulse MCP

An official MCP server that provides machine-readable changelogs for coding agents. It allows agents to query version differences, breaking changes, migration steps, and deprecations via structured JSON. It also supports publishing release notes directly from agents or CI pipelines using an API key.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

LogPulse MCP logo, by LogPulseVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by LogPulse
You need:read tools need no sign-inpublish tools take an API key header
MCP endpoint (Streamable HTTP)
https://release-ripple-roadmap.lovable.app/mcp
Vendor documentation

What you can do with it

  • Query breaking changes and migration steps between specific versions
  • Convert markdown changelogs or GitHub releases to structured JSON
  • Publish release notes and deprecations via API from CI/CD pipelines

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
logpulse 1.0.0
MCP protocol
2025-06-18
Tools
9 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

LogPulse hosts machine-readable changelogs and public roadmaps for software products. Reading needs no sign-in and only returns what changelog owners have published publicly. To answer “what changed between X and Y, and what do I need to change?”, find the slug with search_changelogs, then call compare_versions and apply its migration steps. Use list_releases and get_release for details and get_roadmap for what's planned. For a project that isn't on LogPulse, convert_changelog turns its CHANGELOG.md text or a GitHub release URL into the same structured shape. publish_release and post_roadmap_update write to the caller's own changelog and need a LogPulse API key sent as the HTTP header 'Authorization: Bearer lp_…' in the MCP client settings — never ask the user to paste a key into the chat.

Tools

9 advertised

search_changelogs — Search changelogs
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find a public LogPulse changelog by package name, repository, product name or slug. Returns slugs to use with the other tools.

search_changelogs input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "query"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 25,
      "minimum": 1,
      "description": "Maximum results. Default 10."
    },
    "query": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "description": "Package (e.g. @acme/analytics), repository (acme/analytics-js), product name or slug."
    }
  },
  "additionalProperties": false
}
search_changelogs annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_changelog — Get changelog
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get a changelog's name, repository, packages, latest version and feed links.

get_changelog input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "changelog"
  ],
  "properties": {
    "changelog": {
      "type": "string",
      "maxLength": 60,
      "minLength": 1,
      "description": "Changelog slug, e.g. \"acme\". Use search_changelogs to find it from a package, repository or product name."
    }
  },
  "additionalProperties": false
}
get_changelog annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
list_releases — List releases
Advertised by the server during the last successful anonymous check.
Advertised read-only

List published releases, newest first, with versions, breaking changes, migration steps and deprecations.

list_releases input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "changelog"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum releases. Default 20."
    },
    "since": {
      "type": "string",
      "maxLength": 40,
      "description": "Only releases published at or after this ISO 8601 time, e.g. 2026-01-01."
    },
    "changelog": {
      "type": "string",
      "maxLength": 60,
      "minLength": 1,
      "description": "Changelog slug, e.g. \"acme\". Use search_changelogs to find it from a package, repository or product name."
    },
    "breaking_only": {
      "type": "boolean",
      "description": "Only releases that contain breaking changes."
    }
  },
  "additionalProperties": false
}
list_releases annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_release — Get release
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get one release by version (2.0.0 or v2.0.0) or URL slug, with full notes, breaking changes and deprecations.

get_release input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "changelog",
    "release"
  ],
  "properties": {
    "release": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "description": "Version like 2.0.0, or the release's URL slug."
    },
    "changelog": {
      "type": "string",
      "maxLength": 60,
      "minLength": 1,
      "description": "Changelog slug, e.g. \"acme\". Use search_changelogs to find it from a package, repository or product name."
    }
  },
  "additionalProperties": false
}
get_release annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
compare_versions — Compare versions
Advertised by the server during the last successful anonymous check.
Advertised read-only

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`.

compare_versions input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "changelog"
  ],
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 40,
      "description": "The version to upgrade to. Omit for the latest."
    },
    "from": {
      "type": "string",
      "maxLength": 40,
      "description": "The version the user is on, e.g. 1.4.0. Omit to start from the first release."
    },
    "format": {
      "enum": [
        "markdown",
        "json"
      ],
      "type": "string",
      "description": "markdown (default) returns an upgrade guide; json returns structured data only."
    },
    "changelog": {
      "type": "string",
      "maxLength": 60,
      "minLength": 1,
      "description": "Changelog slug, e.g. \"acme\". Use search_changelogs to find it from a package, repository or product name."
    }
  },
  "additionalProperties": false
}
compare_versions annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
get_roadmap — Get roadmap
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get the public roadmap: items under review, planned, in progress and shipped, with vote counts.

get_roadmap input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "changelog"
  ],
  "properties": {
    "status": {
      "enum": [
        "under_review",
        "planned",
        "in_progress",
        "shipped"
      ],
      "type": "string",
      "description": "Only items in this column."
    },
    "changelog": {
      "type": "string",
      "maxLength": 60,
      "minLength": 1,
      "description": "Changelog slug, e.g. \"acme\". Use search_changelogs to find it from a package, repository or product name."
    }
  },
  "additionalProperties": false
}
get_roadmap annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true
}
convert_changelog — Convert a changelog
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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. Returns an llms.txt-style summary plus structured JSON.

convert_changelog input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 2000,
      "description": "GitHub URL: a release (github.com/owner/repo/releases/tag/v1.2.0), the releases page, a repository, or a CHANGELOG.md file. Use this or markdown."
    },
    "name": {
      "type": "string",
      "maxLength": 100,
      "description": "Project name to use in the summary."
    },
    "markdown": {
      "type": "string",
      "maxLength": 900000,
      "description": "The changelog text itself, e.g. the contents of CHANGELOG.md. Use this or url."
    },
    "include_notes": {
      "type": "boolean",
      "description": "Include each release's full notes in the JSON. Default false to keep the answer short."
    }
  },
  "additionalProperties": false
}
convert_changelog annotations
{
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true
}
publish_release — Publish release
Advertised by the server during the last successful anonymous check.

Publish a release note to your LogPulse changelog right after shipping — with version, breaking changes, migration steps and deprecations. Needs a LogPulse API key with the “Publish releases” permission, sent as the Authorization header.

publish_release input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "title"
  ],
  "properties": {
    "body": {
      "type": "string",
      "default": "",
      "maxLength": 100000,
      "description": "Release notes in Markdown."
    },
    "slug": {
      "type": "string",
      "maxLength": 80,
      "description": "URL slug. Defaults to the title."
    },
    "title": {
      "type": "string",
      "maxLength": 160,
      "minLength": 1,
      "description": "Short, user-facing headline, e.g. “Webhooks retry automatically”."
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40,
        "minLength": 1
      },
      "maxItems": 10,
      "description": "Up to 10 short labels, e.g. API, Dashboard."
    },
    "status": {
      "enum": [
        "published",
        "draft"
      ],
      "type": "string",
      "default": "published",
      "description": "published (default) goes live now, or at published_at. draft saves it for a human to review in LogPulse."
    },
    "summary": {
      "type": "string",
      "maxLength": 300,
      "description": "One sentence for lists and link previews."
    },
    "version": {
      "type": "string",
      "pattern": "^[vV]?[0-9A-Za-z][0-9A-Za-z.+_-]{0,39}$",
      "description": "Version this release ships in, e.g. 2.0.0. Unique per changelog."
    },
    "category": {
      "enum": [
        "new",
        "improved",
        "fixed"
      ],
      "type": "string",
      "default": "new",
      "description": "new, improved or fixed. Default new."
    },
    "author_name": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "description": "Shown as the author. Defaults to the API key's name."
    },
    "deprecations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "item"
        ],
        "properties": {
          "item": {
            "type": "string",
            "maxLength": 200,
            "minLength": 1,
            "description": "What is deprecated."
          },
          "note": {
            "type": "string",
            "maxLength": 1000
          },
          "replacement": {
            "type": "string",
            "maxLength": 200
          },
          "removal_version": {
            "type": "string",
            "maxLength": 40
          }
        }
      },
      "maxItems": 50,
      "description": "What is deprecated, its replacement and planned removal version."
    },
    "published_at": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
      "description": "Schedule a future time, or backdate an import."
    },
    "breaking_changes": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "summary"
        ],
        "properties": {
          "affects": {
            "type": "string",
            "maxLength": 120,
            "description": "What is affected, e.g. REST API, @acme/sdk."
          },
          "summary": {
            "type": "string",
            "maxLength": 300,
            "minLength": 1,
            "description": "One line: what broke."
          },
          "migration": {
            "type": "string",
            "maxLength": 4000,
            "description": "Markdown steps to migrate."
          }
        }
      },
      "maxItems": 50,
      "description": "What breaks for existing users, each with migration steps."
    }
  },
  "additionalProperties": false
}
publish_release annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
post_roadmap_update — Post roadmap update
Advertised by the server during the last successful anonymous check.

Add an item to your LogPulse roadmap, or update one by id — move it to in progress or shipped, change its ETA, or link the release that shipped it. Needs a LogPulse API key with the “Update roadmap” permission, sent as the Authorization header.

post_roadmap_update input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      "description": "Update this item instead of creating a new one."
    },
    "eta": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ],
      "description": "Free text, e.g. Q3 or July."
    },
    "label": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 40
        },
        {
          "type": "null"
        }
      ],
      "description": "Short tag, e.g. API or Mobile."
    },
    "title": {
      "type": "string",
      "maxLength": 140,
      "minLength": 1,
      "description": "Item title. Required when creating."
    },
    "status": {
      "enum": [
        "under_review",
        "planned",
        "in_progress",
        "shipped"
      ],
      "type": "string",
      "description": "Roadmap column. New items default to planned."
    },
    "is_public": {
      "type": "boolean",
      "description": "Show on the public roadmap. Defaults to true for new items."
    },
    "description": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 2000
        },
        {
          "type": "null"
        }
      ],
      "description": "What and why, in a sentence or two."
    },
    "linked_release": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 80
        },
        {
          "type": "null"
        }
      ],
      "description": "Release id, version or slug that shipped this item."
    }
  },
  "additionalProperties": false
}
post_roadmap_update annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1545 ms
95th percentile latency
1545 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1545 ms · metadata changed · 9 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http logpulse-mcp https://release-ripple-roadmap.lovable.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add logpulse-mcp --url https://release-ripple-roadmap.lovable.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable logpulse-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "logpulse-mcp": {
      "url": "https://release-ripple-roadmap.lovable.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "logpulse-mcp": {
      "type": "streamableHttp",
      "url": "https://release-ripple-roadmap.lovable.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start logpulse-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "logpulse-mcp": {
      "type": "http",
      "url": "https://release-ripple-roadmap.lovable.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http logpulse-mcp https://release-ripple-roadmap.lovable.app/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "logpulse-mcp": {
      "url": "https://release-ripple-roadmap.lovable.app/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "logpulse-mcp": {
      "serverUrl": "https://release-ripple-roadmap.lovable.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like LogPulse MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run LogPulse MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing