MCP access
Use an agent token with the Featurama CLI or a direct HTTP MCP client.
An agent token (fm_dev_…) authorizes management of your apps and requests. It is different from the app's API key (fm_live_…) used in a mobile app. Never give an app an agent token.
Issue a token
Open Settings, select Create agent token, keep or change the Token name, and select Create agent token. Copy the token from Agent token created right away. The full value is shown only once. The same panel shows an MCP configuration with the full token filled in, so keep that configuration out of shared files too. You can also create a token in the last setup step, Connect an agent. Use a separate token for each agent or MCP client so you can revoke one without disrupting the others.
The CLI agent setup is the easiest path for terminal agents. It accepts the token over protected stdin or FEATURAMA_TOKEN, validates it against the selected instance, and stores it locally for later commands.
Direct MCP connection
Connect to the API instance's /mcp endpoint over HTTPS. The new Preview is https://newapi.featurama.app/mcp; a self-hosted instance uses its own API origin plus /mcp. Do not point an MCP client at the dashboard's /mcp route unless that route is explicitly configured to proxy to the API. Use Authorization: Bearer <developer token> and the streamable HTTP transport supported by your client.
A generic client configuration shape is:
{
"mcpServers": {
"featurama": {
"type": "http",
"url": "https://newapi.featurama.app/mcp",
"headers": {
"Authorization": "Bearer [REDACTED]"
}
}
}
}[REDACTED] is not a working token. Different MCP clients use different config formats and secret interpolation. Use that client's secret store or environment substitution. Never commit a configuration containing the actual token, and do not paste it into an agent transcript. The CLI avoids keeping a token in a project-level MCP config.
Available tools
| Tool | Purpose | Required arguments |
|---|---|---|
listProjects | List owned projects | None |
getProject | Read a project, including its key prefix, not its full key | projectId |
createProject | Create a project; returns a new full project key once | name |
updateProject | Set project email collection to none, optional, or required | projectId, emailCollection |
listFeatureRequests | List requests with filters and pagination | projectId |
createFeatureRequest | Create an approved request | projectId, title, description |
updateFeatureRequestStatus | Change a request's status | projectId, requestId, status |
listFeatureRequestComments | Read a request's comments, oldest first | projectId, requestId |
addFeatureRequestComment | Post a public developer reply to a request | projectId, requestId, content |
deleteFeatureRequestComment | Permanently delete one comment and its comment votes | projectId, requestId, commentId |
getDashboardStats | Totals across your projects | None |
getRecentRequests | Recent requests across your projects | None |
createProject also accepts technology: expo, reactNative, flutter, swift, android, or maui. Supported status values are Requested, Roadmap, InProgress, Done, and Declined. Creating a project can hit your plan limit; do not trigger a paid upgrade to follow a setup guide. A timed-out write may have succeeded: inspect server state before repeating it.
Read and reply to comments
Have the agent read the thread with listFeatureRequestComments before it replies. Each comment includes its content, author, vote count, and creation time.
addFeatureRequestComment posts the reply as the developer who owns the token. The reply is public. App users see it under the request with the Developer badge, the same as a reply from the dashboard. If the submitter left an email address, Featurama also sends them the reply email it sends for dashboard replies. Sending is best effort, and each reply is emailed once.
contentmust not be blank and can be up to 10,000 characters.- Replies cannot be edited. Never post tokens, keys, other secrets, or internal notes.
- To delete one comment, read the thread first, then call
deleteFeatureRequestCommentwith its exactprojectId,requestIdandcommentId. All IDs must match, and the project must belong to the token owner. The request, request votes and other comments remain. Read the thread back after deletion. - Deletion removes the comment and its comment votes permanently and updates the comment count. It cannot recall an email already sent. After a timeout, read the thread before retrying.
- If a reply times out, call
listFeatureRequestCommentsbefore sending it again. A second call posts a second reply.
Revoke a token in Settings if it is compromised. Deleting a local CLI context does not revoke it.