Aha! MCP server for AI agents and assistants

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Aha! MCP or direct API to manage ideas, update features, plan releases, and organize product roadmaps through natural language.

Aha! logoAha!
Oauth2

Aha! is a product management platform for setting strategy, prioritizing ideas, and planning roadmaps. It helps product teams align goals with development work and make better decisions.

110 Tools

Try Aha! now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Aha!
Try asking
TOOLS

Supported Tools

Every Aha! action and event your agent gets out of the box.

Add Product Idea Portals

Add idea portal links to a product without replacing existing links.

Convert Feature to Epic

Irreversibly convert an existing feature into an epic while preserving its data and relationships.

Convert Requirement to Feature

Irreversibly convert an existing requirement into a feature.

Create Custom Field Option

Create an option for one custom-field definition.

Create Epic

Create an epic in a release or in a workspace's default release.

Create Feature

Create a feature in a release with its documented planning fields.

Create Goal

Create a strategic goal in one Aha!

Create Idea

Create an idea in a product with the documented idea fields.

Create Idea Theme

Create an idea theme in a product.

Create Initiative

Create a strategic initiative in one Aha!

Create Key Result

Create a key result under one strategic goal.

Create Parking-Lot Release

Create a parking-lot release in a workspace.

Create Product

Create an Aha!

Create Product Contributor

Create an Aha!

Create Product Roll-Up Release

Create a roll-up release in a product line, optionally adding workspaces.

Create Release Milestone

Create a phase or milestone in an Aha!

Create Requirement

Create a requirement within one feature.

Create To-Do

Create a standalone personal to-do for the connected Aha!

Create Workflow Status Time

Create a workflow status interval for one supported parent record.

Delete Custom Field Option

Delete one option from an Aha!

Delete Epic

Delete an epic by ID; it may remain restorable through the recycle bin for up to 30 days.

Delete Feature

Delete one feature by ID or reference number; it may remain restorable through the recycle bin for up to 30 days.

Delete Goal

Delete one strategic goal; it may remain restorable through the recycle bin for up to 30 days.

Delete Idea

Delete an idea by ID or reference key; it may remain restorable through the recycle bin for up to 30 days.

Delete Idea Theme

Delete an idea theme by numeric ID; it may remain restorable through the recycle bin for up to 30 days.

Delete Initiative

Delete one strategic initiative; it may remain restorable through the recycle bin for up to 30 days.

Delete Key Result

Delete one key result; it may remain restorable through the recycle bin for up to 30 days.

Delete Release

Delete a release from a workspace; it may remain restorable through the recycle bin for up to 30 days.

Delete Release Phase

Delete a release phase by numeric ID; it may remain restorable through the recycle bin for up to 30 days.

Delete Requirement

Delete one requirement by ID or reference number; it may remain restorable through the recycle bin for up to 30 days.

Delete To-Do

Delete one to-do by its Aha!

Delete User Custom Role

Remove a user's custom role in one Aha!

Delete User Product Role

Remove a user's role in one Aha!

Delete Workflow Status Time

Delete a workflow status interval.

Duplicate Release

Create a duplicate of an existing release.

Get Current User

Return the connected Aha!

Get Custom Layout

Return one custom layout.

Get Epic

Return one Aha!

Get Feature

Return detailed information for one feature by internal ID or human-readable reference number.

Get Goal

Return one strategic goal by ID or reference number.

Get Idea

Return one idea by ID or reference number.

Get Idea Theme

Return one idea theme by ID.

Get Identity Provider

Return one identity provider configured for account SSO.

Get Initiative

Return one strategic initiative by ID or reference number.

Get Key Result

Return one key result by ID.

Get Release

Return one release by ID or reference number.

Get Release Phase

Return one release phase by ID.

Get Requirement

Return one requirement by ID or reference number.

Get Roll-Up Release

Return one roll-up release by ID or reference number.

Get Strategic Model

Return one strategic model by ID.

Get Strategic Vision

Return one strategic vision by ID.

Get To-Do

Return one to-do by its Aha!

Get User

Get a specific Aha!

Get Workflow

Return one workflow with its statuses and workflow kinds.

Get Workflow Status Time

Return one workflow status interval.

Get Workspace

Return one workspace and its applied template by ID.

List All Custom Field Options

Return all options configured for one custom-field definition.

List Assigned Records

List one page of records assigned to the connected Aha!

List Assistant Usage

Return one page of per-user AI assistant activity.

List Audits

Return one page of immutable Aha!

List Child Releases

Return releases under a roll-up release, one page at a time.

List Custom Field Options

Return selectable options for one custom-field definition.

List Custom Fields

Return custom-field definitions, keys, types, and worksheet metadata.

List Custom Layouts

Return custom layouts configured in the account.

List Deletions

Return records currently visible in the account recycle bin, one page at a time.

List Epics

Return one page of epics across the account or within a goal, initiative, release, or workspace.

List Features

Return one page of features across the account or within a goal, initiative, epic, workspace, or release.

List Goals

Return one page of strategic goals across the account or within an initiative or product.

List Idea Portals

Return idea portals configured in the account or linked to one product, one page at a time.

List Ideas

Search and filter ideas across the account or within one product, returning one page at a time.

List Idea Themes

Return idea themes across the account, one page at a time.

List Identity Providers

Return active identity providers available for account SSO.

List Initiatives

Return one page of strategic initiatives across the account or within a goal or product.

List Key Results

Return key results for one strategic goal, one page at a time.

List Product Roll-Up Releases

Return roll-up releases in one Aha!

List Product Users

List one page of users and roles associated with an Aha!

List Related Ideas

Find ideas related to a term, one page at a time.

List Release Phases

Return release phases across the account or within one release, one page at a time.

List Releases

Return releases associated with a workspace, goal, or initiative, one page at a time.

List Requirements

Return requirements for one feature, optionally updated since a timestamp, one page at a time.

List Strategy Models

Return strategy models configured in the account, one page at a time.

List Strategy Visions

Return strategic vision records in the account, one page at a time.

List To-Dos

Return one page of account, assigned-user, or associated-record to-dos.

List User Custom Roles

List one page of an Aha!

List User Product Roles

List one page of an Aha!

List Users

Return account users and their seat and administrator flags, one page at a time.

List Workflows

Return workflows and statuses configured for one workspace.

List Workflow Status Times

Return workflow status intervals for one supported parent record, one page at a time.

List Workspaces

Return Aha!

Promote Idea

Promote an idea to an epic, feature, initiative, or requirement.

Replace Product Idea Portals

Replace every idea portal link on a product.

Restore Deleted Record

Start restoring a record from the recycle bin within its retention period; restoration may continue asynchronously.

Update Custom Field Option

Update the value, color, or visibility of a custom-field option.

Update Epic

Update an epic by ID; provide at least one field to change.

Update Feature

Update one feature's planning fields; provide at least one field to change.

Update Goal

Update one strategic goal; provide at least one field to change.

Update Idea

Update an existing idea; provide at least one field to change.

Update Idea Theme

Update an idea theme; provide a new name or description.

Update Initiative

Update one strategic initiative; provide at least one field to change.

Update Key Result

Update one key result; provide at least one field to change.

Update Product

Update an Aha!

Update Release

Update a release by ID, optionally through a specified workspace, including dates, capacity, progress, parent, owner, goals, and initiatives; provide at least one field to change.

Update Release Phase

Update a release phase's type, dates, description, or progress.

Update Requirement

Update one requirement; provide at least one field to change.

Update Roll-Up Release

Update a roll-up release or add workspaces to it.

Update To-Do

Update an existing to-do's name or description; provide at least one of name or body.

Update User

Update an Aha!

Update User Custom Roles

Assign a custom role to an Aha!

Update User Product Roles

Assign a product role to an Aha!

Update Workflow Status Time

Update a workflow status interval.

SETUP GUIDE

Connect Aha! MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
Install the Composio SDK and your agent framework
2

Create a session with MCP enabled

typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["aha"],
  mcp: true,
});
Create a session scoped to Aha! and read its MCP URL and headers
3

Connect your agent to the MCP server

typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List the five most recently created ideas in my Aha! workspace",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
Pass the session's MCP URL and headers to your agent and run a Aha! request
SETUP GUIDE

Connect Aha! API Tool with your Agent

1

Install Composio

typescript
npm install @composio/core @composio/openai openai
Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
2

Create a Composio session

typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["aha"] });
const tools = await session.tools();
Initialize Composio with the OpenAI Responses provider and create a session scoped to Aha!
3

Run Aha! tools with your agent

typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List the five most recently created ideas in my Aha! workspace" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
Send a request, execute the Aha! tool calls through the session, and print the final answer

Why Use Composio?

AI Native Aha! Integration

  • Supports both Aha! MCP and direct API based integrations
  • Structured, LLM-friendly schemas for reliable tool execution
  • Rich coverage for reading, writing, and querying your Aha! data

Managed Auth

  • Built-in OAuth handling with automatic token refresh and rotation
  • Central place to manage, scope, and revoke Aha! access
  • Per user and per environment credentials instead of hard-coded keys

Agent Optimized Design

  • Tools are tuned using real error and success rates to improve reliability over time
  • Comprehensive execution logs so you always know what ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC so you control which agents and users can access Aha!
  • Scoped, least privilege access to Aha! resources
  • Full audit trail of agent actions to support review and compliance

Rolling this out across your team?

Give your team centralized access control across every framework with Composio’s MCP Gateway.

EXPLORE MCP GATEWAY
FAQ

Frequently asked questions

Aha! requires connections to go through your own OAuth app. You register it once with Aha!, add its client ID and secret in the Composio dashboard, and from then on everyone connects by signing in to Aha! as usual. Composio handles the rest of the flow and the token refresh.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Yes. Composio is SOC 2 Type II compliant and is built to keep your Aha! connection and credentials secure. OAuth tokens and API keys are encrypted, and sensitive customer data is protected at rest and in transit.

Composio also undergoes independent security testing and continuously monitors its systems for security threats. You can review the latest reports and policies in the Composio Trust Center.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

When you connect a Aha! account through Composio, every action runs under that account, so anything the agent creates, sends, or changes shows up in Aha! as done by you. Keep an approval step in your prompt for actions with side effects, such as sending or deleting, and have the agent draft first.

Exactly the ones Aha! lists on its consent screen when you connect. Review that screen before approving. If you connect a work account, your Aha! administrator may need to approve the app first, and you can revoke the access inside Aha! whenever you want.

Yes. Composio supports multiple connected accounts for the same app, and that works in Claude, ChatGPT, or any other assistant you connect through Composio. Give each Aha! connection a name such as work or personal, and the assistant uses the one you mention in the request. Each account keeps its own credentials and nothing is merged.

Composio refreshes Aha! tokens automatically, so day to day you do nothing. If you revoke access inside Aha!, or Aha! invalidates the session, the connection shows as expired in Composio and the agent stops acting on that account until you reconnect it, which is a single sign-in.

Composio's free Hobby plan includes 100,000 tool calls per month with no credit card, which covers most personal Aha! use. Paid plans add higher limits and team features. Your Aha! plan and its API limits still apply as usual.

Built-in connectors usually give one AI access to a limited set of apps. Many people use Composio because it lets their AI connect to more apps than it normally supports, or connect to multiple accounts for the same app (e.g. connect Claude to multiple Aha! accounts).

With Composio, you connect Aha! once and then use it across different AI assistants without setting it up separately in each one. Connect your apps to Composio once, then connect Composio to whichever AI you use, whether that's Claude, ChatGPT, Hermes, or your own custom assistant.

Start with Aha!.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Aha! tool your agent needs.Free to start.

Start building