Aha.io logo

Aha.io

Search, read and update Aha.io ideas, features, epics, releases, goals and comments

Install Aha.io

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "aha-io": {
      "command": "npx",
      "args": [
        "@cedricziel/aha-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 54 tools correctly (12d ago).

Overview

Tools54

What Aha.io lets your agent do. Expand a tool for its parameters.

Verified live~10.9k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

4/4 checks healthy over the last 20d

What it can do

From the 54 tools this server returned when we ran it; 54 declare their own safety hints.

Can delete or modify data · 11Handles credentials · 2Makes network requests · 51Read-only tools · 43
Network at startup3 connections
Files written at startupNone
Install scriptsprepare
npm provenanceSigned build
Package age456 days
Maintainers1

Observed 2026-10-16 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 5d ago via OSV.dev · @cedricziel/aha-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars6Stargazers on the source repository.
npm downloads527Package downloads in the last 30 days.
Last commit6d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed54Callable tools this server registers over MCP.
Directory activity1 viewsConfig copies, upvotes, and views on AllMCPs.

From the project README

Aha MCP Server

License: MIT TypeScript MCP

A Model Context Protocol (MCP) server that provides seamless integration with Aha.io's product management platform. Features offline database synchronization, vector embeddings for semantic search, and comprehensive workflow automation.

🔧 Client Configuration

MCP Registry

This server is published to the official MCP Registry as io.github.cedricziel/aha-mcp, so a client that browses the registry can install it without any of the configuration below:

Terminal
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.cedricziel/aha-mcp"

The registry holds metadata only. Its entry points at the three artifacts described below — the npm package, the ghcr.io image and the .mcpb desktop extension — and a client picks whichever it can run. Either way the server needs AHA_COMPANY and AHA_TOKEN.

Claude Desktop Extension (easiest)

Download aha-mcp-v<version>.mcpb from the latest release and open it with Claude Desktop, which will prompt you for your Aha.io subdomain and API token. No Node.js or Docker setup and no manual JSON editing required.

The extension exposes 54 tools that query Aha.io directly, so results are always current and nothing is stored locally. Cross-record search is served by Aha.io's own index — see Search.

Claude Desktop Configuration

To use this MCP server with Claude Desktop, add the following to your claude_desktop_config.json:

Using npx:

config.json
{
  "mcpServers": {
    "aha": {
      "command": "npx",
      "args": ["@cedricziel/aha-mcp"],
      "env": {
        "AHA_COMPANY": "your-company",
        "AHA_TOKEN": "your-api-token"
      }
    }
  }
}

Using Docker:

config.json
{
  "mcpServers": {
    "aha": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "AHA_COMPANY=your-company",
        "-e", "AHA_TOKEN=your-api-token",
        "ghcr.io/cedricziel/aha-mcp"
      ]
    }
  }
}

Note: Replace your-company and your-api-token with your actual Aha.io subdomain and API token.

🚀 Getting Started

Quick Start with npx

You can run the MCP server directly using npx without installing it globally:

server.ts
# Set environment variables
export AHA_COMPANY="your-company"  # Your Aha.io subdomain
export AHA_TOKEN="your-api-token"   # Your Aha.io API token

# Run the server
npx @cedricziel/aha-mcp

Quick Start with Docker

You can also run the MCP server using Docker:

server.ts
# Set environment variables
export AHA_COMPANY="your-company"  # Your Aha.io subdomain
export AHA_TOKEN="your-api-token"   # Your Aha.io API token

# Run in stdio mode (default)
docker run --rm -e AHA_COMPANY="$AHA_COMPANY" -e AHA_TOKEN="$AHA_TOKEN" ghcr.io/cedricziel/aha-mcp

# Run in Streamable HTTP mode (recommended for remote access)
docker run --rm -p 3001:3001 -e AHA_COMPANY="$AHA_COMPANY" -e AHA_TOKEN="$AHA_TOKEN" ghcr.io/cedricziel/aha-mcp --mode streamable-http

Development Setup

  1. Install Bun if you haven't already:

    Terminal
    curl -fsSL https://bun.sh/install | bash
    
  2. Install dependencies:

    bash
    bun install
    
  3. Configure environment variables:

    server.ts
    export AHA_COMPANY="your-company"  # Your Aha.io subdomain
    export AHA_TOKEN="your-api-token"   # Your Aha.io API token
    
  4. Start the server:

    bash
    # Start the stdio server (for MCP clients - default)
    bun start
    
    # Or start with Streamable HTTP (recommended for remote access)
    bun start -- --mode streamable-http
    
    # Or start the HTTP server (legacy entry point)
    bun run start:http
    
  5. For development with auto-reload:

    bash
    # Development mode with stdio
    bun run dev
    
    # Development mode with Streamable HTTP
    bun run dev -- --mode streamable-http
    
    # Development mode with HTTP (legacy)
    bun run dev:http
    

🔌 Aha.io Integration

This MCP server provides hybrid integration with Aha.io through both live API access and offline database synchronization. The server automatically maintains a local SQLite database with your Aha.io data, enabling faster queries, offline access, and advanced semantic search capabilities.

Architecture Overview

  • Hybrid Data Access: Live API calls for real-time data + offline SQLite database for performance
  • Background Sync: Automatic synchronization of Aha.io entities to local database
  • Vector Embeddings: Semantic search using sentence transformers and SQLite vector extensions
  • Real-time Progress: Background job monitoring with detailed progress tracking
  • Configuration Management: Runtime configuration without server restarts

Configuration

The Aha.io integration can be configured using multiple methods, with the following priority order:

  1. Environment Variables (highest priority)
  2. Configuration File (~/.aha-mcp-config.json)
  3. Default Values (lowest priority)

Environment Variables

  • AHA_COMPANY: Your Aha.io subdomain (e.g., mycompany for mycompany.aha.io)
  • AHA_TOKEN: Your Aha.io API token (for API token authentication)
  • AHA_ACCESS_TOKEN: Your OAuth 2.0 access token (for OAuth authentication)
  • MCP_TRANSPORT_MODE: Transport mode (stdio or streamable-http)
  • MCP_PORT: Port number for HTTP-based modes (default: 3001)
  • MCP_HOST: Host address for HTTP-based modes (default: 0.0.0.0)
  • MCP_AUTH_TOKEN: Authentication token for HTTP-based modes (optional)
  • MCP_TOOL_RATE_LIMIT_PER_MINUTE: Tool calls allowed per minute (default: 120, 0 disables)

Transport Modes

The server supports two transport modes:

  1. stdio: Standard input/output mode for MCP client integration (default)
  2. streamable-http: HTTP transport (MCP protocol 2025-06-18), for remote and web clients

Example usage:

bash
# Stdio mode (default)
aha-mcp

# Streamable HTTP mode
aha-mcp --mode streamable-http --port 3001

Removed: the sse transport was deprecated in MCP spec 2025-03-26 and has been removed. MCP_TRANSPORT_MODE=sse and --mode sse now fall back to streamable-http with a warning, so existing configurations keep starting.

Authentication (HTTP transport)

The streamable-http transport supports optional Bearer token authentication:

Environment Variable Configuration
server.ts
# Set authentication token
export MCP_AUTH_TOKEN="your-secure-token-here"

# Start server with authentication
aha-mcp --mode streamable-http --port 3001
Client Authentication

When authentication is enabled, clients must include a Bearer token in the Authorization header. All MCP traffic goes to the single /mcp endpoint:

Terminal
curl -X POST \
     -H "Authorization: Bearer your-secure-token-here" \
     -H "Content-Type: application/json" \
     -H "MCP-Protocol-Version: 2025-06-18" \
     -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' \
     http://localhost:3001/mcp

Most callers should use an MCP client library rather than raw HTTP; pass the token as an Authorization header when constructing the transport.

Security Notes
  • Opt-in: Authentication is optional. If MCP_AUTH_TOKEN is not set, all requests are allowed.
  • Token Security: Use strong, randomly generated tokens (minimum 8 characters).
  • HTTPS: In production, always use HTTPS to protect tokens in transit.
  • Token Storage: Tokens are obfuscated (base64 encoded) in the configuration file but should be treated as sensitive data.
Checking Authentication Status
Terminal
curl http://localhost:3001/

# Response includes:
# {
#   "authentication": {
#     "enabled": true,
#     "type": "Bearer token"
#   }
# }

Configuration Management Tools

The server provides three MCP tools for configuration management:

  1. configure_server: Update server settings at runtime
  2. get_server_config: View current configuration and validation status
  3. test_configuration: Test API connectivity with current settings

These tools allow you to manage configuration without restarting the server, making it easy to switch between different Aha.io accounts or update credentials.

Database Synchronization

The server maintains a local SQLite database with your Aha.io data for improved performance and offline access.

Sync Management Tools

  • aha_sync_start: Start background synchronization of specified entity types
  • aha_sync_status: Check the status and progress of sync jobs
  • aha_sync_stop: Stop a running sync job
  • aha_sync_pause: Pause a sync job (can be resumed later)
  • aha_sync_resume: Resume a paused sync job
  • aha_sync_history: View detailed history of sync operations
  • aha_sync_health: Get overall sync service health status
  • aha_database_health: Check database connectivity and statistics
  • aha_database_cleanup: Clean up old sync jobs and optimize database

Sync Features

  • Entity Types: Sync features, products, ideas, epics, initiatives, releases, goals, users, comments
  • Progress Tracking: Real-time progress updates with detailed statistics
  • Error Handling: Comprehensive error logging and recovery mechanisms
  • Batch Processing: Configurable batch sizes for optimal performance
  • Incremental Updates: Support for updatedSince filtering to sync only recent changes
  • Concurrent Operations: Multiple sync jobs can run simultaneously

Example Sync Workflow

bash
# Start syncing features and products
aha_sync_start --entities features,products --batchSize 50

# Check progress
aha_sync_status --jobId sync-abc123

# View sync history
aha_sync_history --jobId sync-abc123 --limit 20

# Check overall health
aha_sync_health

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Aha.io

Aha.io is an MCP server that connects MCP-compatible clients to Aha.io for searching, reading, and updating ideas, features, epics, releases, goals, and comments. It can be installed from the MCP Registry, run through a Claude Desktop extension, npm with npx, or Docker, using your Aha.io subdomain and API token.

Configure the server with the AHA_COMPANY environment variable for your Aha.io subdomain and AHA_TOKEN for your API token. These variables can be supplied through Claude Desktop configuration, the Claude Desktop extension, npx, or Docker.

The server can search, read, and update Aha.io ideas, features, epics, releases, goals, and comments. It provides 54 tools, and its cross-record search uses Aha.io’s own index.

Run the ghcr.io/cedricziel/aha-mcp image with AHA_COMPANY and AHA_TOKEN environment variables. Docker runs the server in stdio mode by default; for remote access, the README provides a Streamable HTTP mode that uses port 3001.

Yes, the server is published in the official MCP Registry as io.github.cedricziel/aha-mcp. The registry provides metadata and points to the npm package, GHCR image, and .mcpb desktop extension; the server still requires AHA_COMPANY and AHA_TOKEN.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewAha.io AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/aha-io?style=directory)](https://allmcps.com/mcp/aha-io)
HTML Embed
<a href="https://allmcps.com/mcp/aha-io"><img src="https://allmcps.com/api/badge/aha-io?style=directory" alt="Aha.io on AllMCPs" /></a>