Harvestr
FreeNot checkedManage customer feedback and product discoveries on Harvestr.io
About
Manage customer feedback and product discoveries on Harvestr.io
README
A Model Context Protocol (MCP) server for Harvestr.io - a product management platform for managing customer feedback, discoveries, and components.
Built with FastMCP for clean, Pythonic MCP development.
Features
- Companies: List, create, update, and manage companies and their attributes
- Components: Browse product components and their hierarchy
- Discoveries: Access feature requests, bugs, and insights with state tracking
- Feedback: Manage customer feedback linked to messages and discoveries
- Messages: Access customer communications
- Users: List users and manage their attributes
- Attributes: Access custom field definitions for users and companies
Quick Start
Prerequisites
- Python 3.10 or higher
- uv (recommended) or pip
- A Harvestr.io account with API access
1. Clone and Install
# Clone the repository
git clone https://github.com/your-org/harvestr-mcp.git
cd harvestr-mcp
# Install with uv (recommended)
uv pip install -e .
# Or with pip
pip install -e .
2. Get Your Harvestr API Token
- Log in to your Harvestr.io account
- Navigate to Settings > Integrations > API Access Token
- Click Create new token and copy the generated token
3. Configure the API Token
Set your API token as an environment variable:
# Linux/macOS
export HARVESTR_API_TOKEN="your-api-token-here"
# Windows (PowerShell)
$env:HARVESTR_API_TOKEN="your-api-token-here"
# Windows (CMD)
set HARVESTR_API_TOKEN=your-api-token-here
For persistent configuration, add the export to your shell profile (~/.bashrc, ~/.zshrc, etc.):
echo 'export HARVESTR_API_TOKEN="your-api-token-here"' >> ~/.bashrc
source ~/.bashrc
Security Note: Treat your API token like a password. Never commit it to version control or share it publicly.
4. Run the Server
# Using FastMCP CLI (recommended)
fastmcp run src/harvestr_mcp/server.py:mcp
# Or using Python directly
python -m harvestr_mcp.server
5. Test with MCP Inspector (Optional)
To interactively test the server's tools:
npx @modelcontextprotocol/inspector fastmcp run src/harvestr_mcp/server.py:mcp
This opens a web interface where you can explore and test all available tools.
Installation
Using uv (recommended)
uv pip install -e .
Using pip
pip install -e .
Usage
Running the Server
Stdio Transport (for local use with MCP clients)
# Using the FastMCP CLI
fastmcp run src/harvestr_mcp/server.py:mcp
# Or directly with Python
python -m harvestr_mcp.server
HTTP Transport (for remote access)
fastmcp run src/harvestr_mcp/server.py:mcp --transport http --port 8000
Using with Claude Desktop
Add to your Claude Desktop configuration (~/.config/claude/claude_desktop_config.json on Linux/Mac or %APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"harvestr": {
"command": "uv",
"args": ["run", "fastmcp", "run", "/path/to/harvestr-mcp/src/harvestr_mcp/server.py:mcp"],
"env": {
"HARVESTR_API_TOKEN": "your-api-token-here"
}
}
}
}
Using with FastMCP Client
import asyncio
from fastmcp import Client
async def main():
async with Client("http://localhost:8000/mcp") as client:
# List all companies
companies = await client.call_tool("harvestr_list_companies")
print(companies)
# Get a specific discovery
discovery = await client.call_tool(
"harvestr_get_discovery",
{"discovery_id": "abc123", "include_fields": True}
)
print(discovery)
asyncio.run(main())
Available Tools
Users
| Tool | Description |
|---|---|
harvestr_list_users |
List all users |
harvestr_get_user |
Retrieve a specific user by ID |
harvestr_list_user_attribute_values |
List attribute values for a user |
harvestr_update_user_attribute_values |
Update attribute values for a user |
Companies
| Tool | Description |
|---|---|
harvestr_list_companies |
List all companies (optional: filter by externalUid) |
harvestr_create_company |
Create a new company |
harvestr_get_company |
Retrieve a specific company by ID |
harvestr_update_company |
Update a company |
harvestr_list_company_attribute_values |
List attribute values for a company |
harvestr_update_company_attribute_values |
Update attribute values for a company |
Components
| Tool | Description |
|---|---|
harvestr_list_components |
List all components (optional: filter by parentId) |
harvestr_get_component |
Retrieve a specific component by ID |
Discoveries
| Tool | Description |
|---|---|
harvestr_list_discoveries |
List all discoveries (optional: filter by parentId, include fields) |
harvestr_get_discovery |
Retrieve a specific discovery by ID |
harvestr_get_discovery_state |
Get the current state of a discovery |
harvestr_list_discovery_feedback |
List all feedback for a discovery |
Discovery States
| Tool | Description |
|---|---|
harvestr_list_discovery_states |
List all discovery states |
harvestr_get_discovery_state_by_id |
Retrieve a specific discovery state by ID |
Messages
| Tool | Description |
|---|---|
harvestr_list_messages |
List all messages |
harvestr_get_message |
Retrieve a specific message by ID |
harvestr_list_message_feedback |
List all feedback for a message |
Feedback
| Tool | Description |
|---|---|
harvestr_list_feedback |
List all feedback (optional: filter by messageId, discoveryId) |
harvestr_get_feedback |
Retrieve a specific feedback by ID |
Attributes
| Tool | Description |
|---|---|
harvestr_list_user_attributes |
List all user attribute definitions |
harvestr_list_company_attributes |
List all company attribute definitions |
Development
Setting Up for Development
# Clone and enter the repository
git clone https://github.com/your-org/harvestr-mcp.git
cd harvestr-mcp
# Install with dev dependencies using uv (recommended)
uv pip install -e ".[dev]"
# Or with pip
pip install -e ".[dev]"
Running Tests
The test suite uses pytest with pytest-asyncio for async test support:
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run specific test file
pytest tests/test_client.py
# Run specific test class
pytest tests/test_server.py::TestUserTools
# Run with coverage (if installed)
pytest --cov=harvestr_mcp
Test Structure
tests/
├── __init__.py
├── conftest.py # Shared fixtures and test configuration
├── test_client.py # Tests for the Harvestr API client
├── test_types.py # Tests for Pydantic models
└── test_server.py # Tests for MCP server tools
Testing with MCP Inspector
For interactive testing of the server:
npx @modelcontextprotocol/inspector fastmcp run src/harvestr_mcp/server.py:mcp
Code Formatting
This project uses Ruff for linting and formatting:
# Check for issues
ruff check .
# Auto-fix issues
ruff check --fix .
# Format code
ruff format .
API Documentation
For detailed API documentation, see the Harvestr API Docs.
License
MIT License - see LICENSE for details.
Installing Harvestr
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/angelogiacco/harvestr-mcpFAQ
Is Harvestr MCP free?
Yes, Harvestr MCP is free — one-click install via Unyly at no cost.
Does Harvestr need an API key?
No, Harvestr runs without API keys or environment variables.
Is Harvestr hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Harvestr in Claude Desktop, Claude Code or Cursor?
Open Harvestr on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Harvestr with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
