Skip to main content

An MCP server for Freshrelease

Project description

Freshrelease MCP Server

smithery badge

An MCP server implementation that integrates with Freshrelease, enabling AI models to interact with Freshrelease projects and tasks.

Features

  • Freshrelease Integration: Seamless interaction with Freshrelease API endpoints
  • AI Model Support: Enables AI models to perform project/task operations through Freshrelease
  • Automated Project Management: Handle project and task creation and retrieval

Components

Tools

The server offers several tools for Freshrelease operations:

  • fr_create_project: Create a project

    • Inputs: name (string, required), description (string, optional)
  • fr_get_project: Get a project by ID or key

    • Inputs: project_identifier (number|string, required)
  • fr_create_task: Create a task under a project

    • Inputs: project_identifier (number|string, required), title (string, required), description (string, optional), assignee_id (number, optional), status (string|enum, optional), due_date (YYYY-MM-DD, optional), issue_type_name (string, optional, defaults to "task"), user (string email or name, optional), additional_fields (object, optional)
    • Notes: user resolves to assignee_id via users search if assignee_id not provided. issue_type_name resolves to issue_type_id. additional_fields allows passing arbitrary extra fields supported by your Freshrelease account. Core fields (title, description, assignee_id, status, due_date, issue_type_id) cannot be overridden.
  • fr_get_task: Get a task by key or ID within a project

    • Inputs: project_identifier (number|string, required), key (number|string, required)
  • fr_get_all_tasks: List issues for a project

    • Inputs: project_identifier (number|string, required)
  • fr_get_issue_type_by_name: Resolve an issue type object by name

    • Inputs: project_identifier (number|string, required), issue_type_name (string, required)
  • fr_search_users: Search users by name or email within a project

    • Inputs: project_identifier (number|string, required), search_text (string, required)
  • fr_link_testcase_issues: Bulk link issues to one or more testcases (using keys)

    • Inputs: project_identifier (number|string, required), testcase_keys (array of string|number), issue_keys (array of string|number)

MCP Tool Reference

<style> .tool-table { width: 100%; border-collapse: collapse; font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial; } .tool-table thead th { background: #0f172a; color: #fff; padding: 12px 10px; text-align: left; font-weight: 600; letter-spacing: 0.2px; } .tool-table tbody td { border-top: 1px solid #e5e7eb; vertical-align: top; padding: 12px 10px; } .tool-table tbody tr:nth-child(odd) { background: #f8fafc; } .badge { display: inline-block; padding: 2px 8px; border-radius: 9999px; font-size: 12px; line-height: 18px; margin-right: 6px; background: #e2e8f0; color: #0f172a; } .badge.req { background: #dbeafe; color: #1e3a8a; } .badge.opt { background: #ecfccb; color: #3f6212; } .code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; background: #0b1020; color: #e2e8f0; padding: 2px 6px; border-radius: 6px; } .small { color: #475569; font-size: 12px; } .note { background: #fff7ed; border: 1px solid #fed7aa; padding: 8px 10px; border-radius: 8px; color: #7c2d12; } </style>
Tool Description Required Params Optional Params Notes
fr_create_project Create a Freshrelease project name: string description: string
fr_get_project Get a project by id or key project_identifier: number|string
fr_create_task Create an issue/task in a project project_identifier: number|string title: string description: string assignee_id: number status: string|enum due_date: YYYY-MM-DD issue_type_name: string (defaults to "task") user: string (email or name) additional_fields: object - If assignee_id not provided and user is, the user is looked up by /{project}/users?q=.. to set assignee_id.
- issue_type_name resolves via /{project}/project_issue_types to an issue_type_id.
- Protected keys in additional_fields won’t override core fields.
fr_get_task Get an issue by key or id project_identifier: number|string key: number|string
fr_get_all_tasks List all issues in a project project_identifier: number|string
fr_get_issue_type_by_name Resolve an issue type object by name project_identifier: number|string issue_type_name: string
fr_search_users Search users by name or email project_identifier: number|string search_text: string Calls /{project}/users?q=...
fr_link_testcase_issues Link issues to one or more testcases (by keys) project_identifier: number|string testcase_keys: array<string|number> issue_keys: array<string|number> Resolves keys to ids, then calls PUT /{project}/test_cases/update_many.
For status you may pass a string or enum. Enum values: todo, in_progress, done.

Getting Started

Installing from PyPI

Install the published package directly from PyPI:

pip install -U freshrelease-mcp

Verify installation:

freshrelease-mcp --help

Run the server locally with environment variables:

FRESHRELEASE_API_KEY="<YOUR_FRESHRELEASE_API_KEY>" \
FRESHRELEASE_DOMAIN="<YOUR_FRESHRELEASE_DOMAIN>" \
freshrelease-mcp

Prerequisites

  • Freshrelease API access (domain + API key)
  • Freshrelease API key
  • uvx installed (pip install uv or brew install uv)

Configuration

  1. Obtain your Freshrelease API key
  2. Set up your Freshrelease domain and authentication details

Usage with Claude Desktop

  1. Install Claude Desktop if you haven't already
  2. Recommended: Use uvx to fetch and run from PyPI (no install needed). Add the following to your claude_desktop_config.json:
{
  "mcpServers": {
    "freshrelease-mcp": {
      "command": "uvx",
      "args": [
        "freshrelease-mcp"
      ],
      "env": {
        "FRESHRELEASE_API_KEY": "<YOUR_FRESHRELEASE_API_KEY>",
        "FRESHRELEASE_DOMAIN": "<YOUR_FRESHRELEASE_DOMAIN>"
      }
    }
  }
}

Important Notes:

  • Replace <YOUR_FRESHRELEASE_API_KEY> with your Freshrelease API key
  • Replace <YOUR_FRESHRELEASE_DOMAIN> with your Freshrelease domain (e.g., yourcompany.freshrelease.com)
  • Alternatively, you can install the package and point command directly to freshrelease-mcp.

Usage with Cursor

  1. Add the following to Cursor settings JSON (Settings → Features → MCP → Edit JSON):
{
  "mcpServers": {
    "freshrelease-mcp": {
      "command": "uvx",
      "args": [
        "freshrelease-mcp"
      ],
      "env": {
        "FRESHRELEASE_API_KEY": "<YOUR_FRESHRELEASE_API_KEY>",
        "FRESHRELEASE_DOMAIN": "<YOUR_FRESHRELEASE_DOMAIN>"
      }
    }
  }
}

Usage with VS Code (Claude extension)

  1. In VS Code settings (JSON), add:
{
  "claude.mcpServers": {
    "freshrelease-mcp": {
      "command": "uvx",
      "args": [
        "freshrelease-mcp"
      ],
      "env": {
        "FRESHRELEASE_API_KEY": "<YOUR_FRESHRELEASE_API_KEY>",
        "FRESHRELEASE_DOMAIN": "<YOUR_FRESHRELEASE_DOMAIN>"
      }
    }
  }
}

Example Operations

Once configured, you can ask Claude to perform operations like:

  • "Create a Freshrelease project named 'Roadmap Q4'"
  • "Get project 'ENG' details"
  • "Create a task 'Add CI pipeline' under project 'ENG' with a custom field"

Example with custom fields for task creation and assignee by email:

{
  "tool": "fr_create_task",
  "args": {
    "project_identifier": "ENG",
    "title": "Add CI pipeline",
    "status": "in_progress",
    "issue_type_name": "task",
    "user": "dev@yourco.com",
    "additional_fields": {
      "priority": "High",
      "labels": ["devops", "ci"],
      "estimate": 3
    }
  }
}

Link multiple testcases to issues by keys:

{
  "tool": "fr_link_testcase_issues",
  "args": {
    "project_identifier": "ENG",
    "testcase_keys": ["TC-101", "TC-102"],
    "issue_keys": ["ENG-123", "ENG-456"]
  }
}

Testing

For testing purposes, you can start the server manually:

uvx freshrelease-mcp --env FRESHRELEASE_API_KEY=<your_api_key> --env FRESHRELEASE_DOMAIN=<your_domain>

Troubleshooting

  • Verify your Freshrelease API key and domain are correct
  • Ensure proper network connectivity to Freshrelease servers
  • Check API rate limits and quotas
  • Verify the uvx command is available in your PATH

License

This MCP server is licensed under the MIT License. See the LICENSE file in the project repository for full details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freshrelease_mcp-1.3.0.tar.gz (47.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freshrelease_mcp-1.3.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file freshrelease_mcp-1.3.0.tar.gz.

File metadata

  • Download URL: freshrelease_mcp-1.3.0.tar.gz
  • Upload date:
  • Size: 47.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for freshrelease_mcp-1.3.0.tar.gz
Algorithm Hash digest
SHA256 1626e4f9ff3df3447d95732425fdae978e0bb7a5cc98c93ef25a8f9166417db9
MD5 22a94f8539555bbc6d423654bd2a49fc
BLAKE2b-256 d15db6f281319ff3f3e84442b0d6f1703ba2a7a0fc116c49dc9e2c93f70d84c1

See more details on using hashes here.

File details

Details for the file freshrelease_mcp-1.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for freshrelease_mcp-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e177e8b4be2ca9a40ce535faefbb6f4c7d28b6cf1949bfcf902d932721823c89
MD5 3c8c404884edb80157ef838756dde590
BLAKE2b-256 61313fc409c00ea32d63dea2b0f94dbba24ff73c460f2befbd823107ee890d5a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page