Model Context Protocol (MCP) Server

Manage your changelogs, roadmaps, and customer feedback directly from your AI coding workflow using our official Model Context Protocol (MCP) server: @ahm-labs/nanolog-mcp.

Whether you use Cursor, Claude Code, Antigravity, Windsurf, or any other MCP-compatible client, you can ask your AI assistant to draft release notes, edit changelogs, update roadmap milestones, inspect customer feedback, and tweak widget configurations without leaving your editor.

[!NOTE] Safety Design: No Delete Operations To prevent accidental data loss or automated wiping of release history by AI agents, the NanoLog MCP server strictly supports Create, Read, and Update operations. Deletion of posts or roadmap items must be performed manually via the NanoLog Dashboard.


Quick Setup

1. Cursor (.cursor/mcp.json)

Add the following to your Cursor MCP configuration (Settings > Features > MCP or .cursor/mcp.json in your workspace):

{
  "mcpServers": {
    "nanolog": {
      "command": "npx",
      "args": ["-y", "@ahm-labs/nanolog-mcp"],
      "env": {
        "NANOLOG_API_URL": "https://www.nanolog.dev",
        "NANOLOG_API_KEY": "YOUR_NANOLOG_API_KEY",
        "NANOLOG_APP_ID": "YOUR_DEFAULT_APP_ID"
      }
    }
  }
}

2. Claude Code

Add the server to Claude Code using the CLI command:

claude mcp add nanolog -- npx -y @ahm-labs/nanolog-mcp

Or configure environment variables in your ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "nanolog": {
      "command": "npx",
      "args": ["-y", "@ahm-labs/nanolog-mcp"],
      "env": {
        "NANOLOG_API_URL": "https://www.nanolog.dev",
        "NANOLOG_API_KEY": "YOUR_NANOLOG_API_KEY"
      }
    }
  }
}

3. Google Antigravity

In your Antigravity MCP settings (~/.gemini/antigravity/mcp_config.json):

{
  "mcpServers": {
    "nanolog": {
      "command": "npx",
      "args": ["-y", "@ahm-labs/nanolog-mcp"],
      "env": {
        "NANOLOG_API_URL": "https://www.nanolog.dev",
        "NANOLOG_API_KEY": "YOUR_NANOLOG_API_KEY"
      }
    }
  }
}

Environment Variables

| Variable | Description | Required | | :--- | :--- | :--- | | NANOLOG_API_KEY | Your NanoLog API key, organization HMAC secret, or master token. | Yes | | NANOLOG_APP_ID | Default project App ID (UUID) used when no specific project is specified in prompts. | Optional | | NANOLOG_USER_EMAIL | User account email (e.g. you@company.com) to automatically filter multi-tenant client projects. | Optional | | NANOLOG_API_URL | Base URL of your NanoLog instance. Defaults to https://www.nanolog.dev. | Optional |


Available Tools Reference

The NanoLog MCP server exposes the following specialized tools:

1. Project & Configuration Tools

  • list_projects: Lists all client organizations and App IDs accessible by your account.
    • Example prompt: "Show me all my client projects in NanoLog."
  • get_project_settings: Inspects allowed domains, localhost testing access, public page URLs, and widget tab configurations.
    • Example prompt: "Check the widget settings and allowed domains for Riverside Records."
  • update_project_settings: Modifies project display names, domain allowlists, public page status, tab labels, and voting toggles.
    • Example prompt: "Enable post voting and update the feedback tab label to 'Suggestions' in project Demo Organization."

2. Changelog Posts Tools

  • list_changelog_posts: Lists recent release notes and updates with their unique post IDs, categories, publication status, and pinned status.
    • Example prompt: "List the last 5 changelog posts for our app."
  • create_changelog_post: Drafts or publishes a new product announcement or release note. Supports title, content (markdown), category (feature, improvement, fix, announcement), tags, isPublished, and isPinned.
    • Example prompt: "Publish a new 'feature' changelog post titled 'Stripe Checkout v2' with notes on Apple Pay support."
  • edit_changelog_post: Updates the content, title, tags, category, pin status, or publication state of an existing post by its ID.
    • Example prompt: "Update changelog post 02cd81d3-... to publish it and add the tag 'billing'."

3. Roadmap Items Tools

  • list_roadmap_items: Retrieves roadmap milestones and feature requests grouped by column (planned, in_progress, released) along with community vote counts.
    • Example prompt: "Show our planned roadmap items."
  • add_roadmap_item: Adds a new feature, objective, or bug tracker item to your product roadmap.
    • Example prompt: "Add 'Dark Mode Theme Support' to the planned column on our roadmap."
  • edit_roadmap_item: Updates title, description, order, or transitions status between planned, in_progress, and released.
    • Example prompt: "Move the roadmap item 'Direct Deposit Payroll' to 'released'."

4. Customer Feedback Tools

  • get_user_feedback: Reads user feedback, suggestions, and NPS ratings submitted directly through the in-app widget.
    • Example prompt: "What have customers submitted in the feedback widget recently?"

5. Media & Screenshot Upload Tools

  • upload_image: Uploads local screenshot files (e.g. from Playwright, Puppeteer, or local disk) to NanoLog CDN storage. Returns a public, CDN-hosted URL.
    • Example prompt: "Take a screenshot of the checkout screen using Playwright, upload it, and set it as the heroImage on our draft post."

Images in Changelogs: Hero vs Inline

NanoLog supports two distinct ways to display images in product announcements:

  1. Cover / Hero Image (heroImage):

    • Displays as a wide cover banner at the top of the post card in the feed and at the top of the article modal view.
    • Pass the public image URL as heroImage in create_changelog_post or edit_changelog_post.
  2. Inline Article Images (content):

    • Embed screenshots directly within the markdown content flow anywhere in your release note using standard Markdown syntax:
      Here is a comparison of the new user dashboard:
      
      ![New Dashboard UI](https://your-cdn-url.com/image.webp)
      
    • Automatically rendered with responsive scaling and style isolation inside the widget's Shadow DOM.

Automated Playwright Workflow:

When an AI agent uses Playwright or browser tools:

  1. Take Screenshot: The agent captures a screenshot to local disk (e.g., ./checkout-preview.png).
  2. Upload to CDN: The agent calls upload_image({ filePath: "./checkout-preview.png" }), which optimizes the image to WebP and returns a public CDN URL.
  3. Draft Changelog: The agent calls create_changelog_post setting heroImage: fileUrl (or embeds ![Preview](fileUrl) in the markdown content).

Recommended Agent Rules (.cursorrules or CLAUDE.md)

The NanoLog MCP server defaults isPublished to false (draft) so human team members can verify notes before they go live. To guarantee that your AI assistants always adhere to this workflow, you can add this instruction to your project's .cursorrules, CLAUDE.md, or AI system prompt:

# NanoLog Changelog & Roadmap Guidelines
- Always create new changelog entries as drafts (`isPublished: false`).
- Summarize changes concisely with user-friendly benefit-driven bullets (avoid raw commit hashes).
- Present the draft post ID and title to the user for human review.
- Only call `edit_changelog_post({ isPublished: true })` when the user explicitly commands to publish live.

Example AI Prompts

Try asking your AI assistant:

"Check git log for changes since yesterday and create a draft changelog post with categorized bullet points."

"List our roadmap and move the Stripe integration item to released."

"What is the latest feedback from our users and what NPS scores did they submit?"