@cedricziel/aha-mcp
Version:
Model Context Protocol (MCP) Server for Aha
165 lines (116 loc) • 4.06 kB
Markdown



A Model Context Protocol (MCP) server that provides seamless integration with Aha.io's product management platform.
## 🚀 Getting Started
### Quick Start with npx
You can run the MCP server directly using npx without installing it globally:
```bash
# Set environment variables
export AHA_COMPANY="your-company"
export AHA_TOKEN="your-api-token"
npx @cedricziel/aha-mcp
```
1. Install dependencies:
```bash
bun install
```
2. Configure environment variables:
```bash
export AHA_COMPANY="your-company"
export AHA_TOKEN="your-api-token"
```
3. Start the server:
```bash
bun start
bun run start:http
```
4. For development with auto-reload:
```bash
bun run dev
bun run dev:http
```
This MCP server includes integration with the Aha.io API, allowing you to access features, ideas, users, and more from your Aha.io account.
The Aha.io integration can be configured using environment variables:
- `AHA_COMPANY`: Your Aha.io subdomain (e.g., `mycompany` for `mycompany.aha.io`)
- `AHA_TOKEN`: Your Aha.io API token
You can set these environment variables in your MCP settings configuration file or in your environment before starting the server.
### Available Resources
- `aha_idea`: Access ideas from Aha.io using the URI format `aha://idea/{id}`
### Available Tools
- `aha_initialize`: Initialize the Aha.io API client (optional if environment variables are set)
- `aha_list_features`: List features from Aha.io
- `aha_get_feature`: Get a specific feature by ID
- `aha_list_users`: List users from Aha.io
- `aha_list_epics`: List epics in a product
- `aha_create_feature_comment`: Create a comment on a feature
## 🛠️ Adding Custom Tools and Resources
When adding custom tools, resources, or prompts to your MCP server:
1. Use underscores (`_`) instead of hyphens (`-`) in all resource, tool, and prompt names
```typescript
// Good: Uses underscores
server.tool(
"my_custom_tool",
"Description of my custom tool",
{
param_name: z.string().describe("Parameter description")
},
async (params) => {
// Tool implementation
}
);
// Bad: Uses hyphens, may cause issues with Cursor
server.tool(
"my-custom-tool",
"Description of my custom tool",
{
param-name: z.string().describe("Parameter description")
},
async (params) => {
// Tool implementation
}
);
```
2. This naming convention ensures compatibility with Cursor and other AI tools that interact with your MCP server
Run the test suite:
```bash
bun test
bun run test:watch
```
To build for production:
```bash
bun run build
bun run build:http
```
To publish the package manually:
```bash
npm login
bun run build
npm publish --access public
```
**Note**: The package is automatically published to npm when you create a GitHub release. Make sure to set the `NPM_TOKEN` secret in your repository settings.
- [CLAUDE.md](CLAUDE.md) - Development guidance for Claude Code when working with this repository
- [MCP Documentation](https://modelcontextprotocol.io/introduction) - Official Model Context Protocol documentation
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.