Skip to main content
Glama

fizlog-mcp

MCP server for Fizlog — the changelog widget for indie SaaS. Let Claude, Cursor or any MCP client announce what you just shipped:

"Publish a changelog entry for the CSV export I just finished."

Tools

Tool

What it does

publish_entry

Publishes (or schedules / saves as draft) an entry — shows up in your in-app widget, public changelog page and RSS. Optional subscriber email.

get_public_changelog

Reads your latest published entries, so the assistant can avoid duplicates or summarize releases.

Related MCP server: Git Commit MCP Server

Setup

  1. In Fizlog, open your project and copy the API key (and the public key from the embed snippet).

  2. Add the server to your MCP client:

Claude Code

claude mcp add fizlog -e FIZLOG_API_KEY=fz_xxx -e FIZLOG_PUBLIC_KEY=your_public_key -- npx -y fizlog-mcp

Claude Desktop (claude_desktop_config.json) / Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "fizlog": {
      "command": "npx",
      "args": ["-y", "fizlog-mcp"],
      "env": { "FIZLOG_API_KEY": "fz_xxx", "FIZLOG_PUBLIC_KEY": "your_public_key" }
    }
  }
}

Env var

Required

Default

FIZLOG_API_KEY

for publish_entry

—

FIZLOG_PUBLIC_KEY

no (default for get_public_changelog)

—

FIZLOG_BASE_URL

no (self-hosted Fizlog)

https://fizlog.com

Development

npm install
npm run build
FIZLOG_BASE_URL=http://localhost:8888/fizlog FIZLOG_API_KEY=... FIZLOG_PUBLIC_KEY=demo npm run smoke

The smoke test creates one draft entry in the target project — run it against a local/test instance.

MIT © Lemony Apps

Available Tools

2 tools
get_public_changelogRead public changelogA
Read-only

Read the latest published entries of a Fizlog project by its public key (the key in the embed snippet / public page URL). Useful to avoid duplicate announcements or to summarize recent releases.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
public_keyNoProject public key. Defaults to FIZLOG_PUBLIC_KEY.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and network-openness are covered. The description adds that only published entries are returned and that the key identifies a public project, but says nothing about rate limits, auth, or pagination. Adequate but thin against an already-covered safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and resource, then the practical use cases. No filler or restated title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only, two-parameter tool with no output schema, the description covers purpose, usage, and the key's provenance well. The one gap is any guidance on the limit parameter, which is left unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: public_key is documented in the schema, but limit has no schema description and the description never explains it. The description does add real value for public_key by locating it ('the key in the embed snippet / public page URL'), but leaves limit's default/max behavior entirely to the raw schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope ('read the latest published entries of a Fizlog project') and the addressing key. The sibling publish_entry is a write tool, so the read/write distinction is unambiguous without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives two concrete use cases ('avoid duplicate announcements', 'summarize recent releases'), which tells the agent when this tool is the right call. It does not state exclusions or name an alternative for other scenarios (e.g., full history), so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

publish_entryPublish changelog entryA

Publish a new entry to the project's Fizlog changelog (in-app widget, public page and RSS). Use it after shipping a feature or fix. Write for end users, not developers: a short benefit-focused title and 1–3 sentences of Markdown (bold, italic, code, links, '- ' lists). Set draft=true to save without publishing, or published_at to schedule.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoDetails in Fizlog's Markdown subset.
typeNonew = feature, improved = enhancement, fixed = bug fix.new
draftNoSave as an unpublished draft instead of publishing.
titleYesShort, user-facing headline, e.g. 'Dark mode is here'.
published_atNoISO 8601 date-time. A future value schedules the entry.
notify_subscribersNoAlso email the project's subscribers (only for immediate, non-draft entries).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=true, idempotent=false), so the bar is lower, and the description still adds meaningful behavior: entries propagate to three surfaces, draft=true defers publishing, and published_at schedules. It omits the subscriber-notification side effect by name, though that parameter is documented in the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly written sentences: purpose first, then trigger condition, then the authoring and scheduling mechanics. No filler, and the highest-value information leads.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and full annotation coverage, the description covers where the entry appears, the draft/schedule paths, and content expectations. It does not mention the notify_subscribers side effect, a minor gap given the schema covers it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines every parameter, including draft, published_at, and notify_subscribers. The description reinforces draft and scheduling behavior and adds authoring guidance (title style, Markdown subset), but mostly restates what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Publish a new entry to the project's Fizlog changelog') and immediately names the surfaces affected (widget, public page, RSS). This clearly distinguishes a write tool from the read-only sibling get_public_changelog.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear trigger ('Use it after shipping a feature or fix'), which tells the agent when this tool applies. It does not explicitly name the sibling get_public_changelog or state when not to use this tool, so it stops short of full routing guidance.

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.

  1. 2 tool updatesv0.1.0
    • First observedget_public_changelog
    • First observedpublish_entry

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: read public changelog entries vs. publish a new entry. An agent can easily tell which to use for a given request, with no overlap.

Naming Consistency4/5

Both names use snake_case with a leading verb (get_, publish_), which is consistent. However, get_public_changelog inserts an adjective and refers to 'changelog' while publish_entry refers to 'entry', a minor noun mismatch.

Tool Count3/5

Two tools for a changelog service is borderline thin. While the core read/publish workflow is covered, basic management operations like updating or deleting entries would require more tools.

Completeness2/5

The surface lacks update, delete, and list-own-drafts operations, which are standard for a changelog domain. An agent asked to edit a published entry or manage drafts would hit a dead end.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers