MCP Server
Give AI assistants full knowledge of all Featurely SDK packages via the Model Context Protocol.
featurely-mcp
featurely-mcp is a Model Context Protocol server that gives AI editors — Claude, Cursor, Windsurf, VS Code Copilot — complete, accurate knowledge of all Featurely SDK packages without leaving your editor.
The MCP server is not installed as a local npm dependency. It runs via npx and is registered in your editor's config file as featurely-docs. Keep any existing featurely entry that points at https://www.featurely.no/api/mcp — that name belongs to the remote Featurely MCP.
Quick setup via CLI
The fastest way to configure the MCP server is with the Featurely CLI:
npx featurely-cli@latest mcp setupThis detects installed editors and writes the correct config automatically. The server is registered as featurely-docs (a legacy featurely entry whose command runs featurely-mcp is removed and replaced by that featurely-docs entry). An existing featurely entry for https://www.featurely.no/api/mcp (the hosted MCP) is left unchanged, as are other servers. Running setup again updates featurely-docs in place and does not create a duplicate. Supported editors: Claude Desktop, Cursor, VS Code Copilot, Windsurf.
Manual configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"featurely-docs": {
"command": "npx",
"args": ["-y", "featurely-mcp@latest"]
}
}
}Cursor
.cursor/mcp.json (project-level) or ~/.cursor/mcp.json (global):
{
"mcpServers": {
"featurely-docs": {
"command": "npx",
"args": ["-y", "featurely-mcp@latest"]
}
}
}Windsurf
~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"featurely-docs": {
"command": "npx",
"args": ["-y", "featurely-mcp@latest"]
}
}
}VS Code (Copilot)
.vscode/mcp.json:
{
"servers": {
"featurely-docs": {
"type": "stdio",
"command": "npx",
"args": ["-y", "featurely-mcp@latest"]
}
}
}After saving the config, restart your editor.
Available tools
Once connected, your AI assistant can call five tools:
| Tool | Description |
|---|---|
list_packages | List all Featurely SDK packages with a short description and install command |
get_package_docs | Complete docs for a package: overview, installation, full API reference, and examples |
get_installation_guide | Installation and quick-start guide for a specific package |
get_api_reference | Full API reference — constructor config, all methods, all types |
get_code_examples | Runnable code examples including React and Next.js integrations |
All tools accept a package parameter:
| Value | Package |
|---|---|
"error-tracker" | featurely-error-tracker |
"feature-reporter" | featurely-feature-reporter |
"site-manager" | featurely-site-manager |
"i18n" | featurely-i18n |
"logger" | featurely-logger |
Requirements
- Node.js 18 or later
npx(included with Node.js)
The package is run via npx -y featurely-mcp@latest, so no global installation is needed. That always pulls the most recent version.
Hosted MCP and internal
The docs server above does not write to your project. The hosted MCP at https://www.featurely.no/api/mcp does. Its create_feature and update_feature_status tools accept an optional internal boolean.
| Tool | internal |
|---|---|
create_feature | Optional. Features and bugs default to true when projectId is the Featurely platform project (iGBUmKRzcovPHJAP1Z6Y). Every other project defaults to false. An explicit true or false always wins. Widget and SDK submissions are not this tool; they stay public. |
update_feature_status | Optional. Set false to show the item on the public board, feeds, and public APIs again. Set true to hide it. Omit the field to leave the flag unchanged. |
get_api_reference for feature-reporter documents the same internal field on POST /api/public/v1/features. Public reads never return internal items. A direct request for one returns 404.
Hosted MCP and translations
The hosted MCP can read and write translation keys, so an AI assistant can add keys and translate them without opening the dashboard.
| Tool | Scope | Description |
|---|---|---|
list_translation_keys | translations:read | Lists keys with default text and per-locale translations, plus the project's default and supported locales. Filter with namespace, query, or missingLocale to find keys that still need a translation for one locale. Paged with limit (max 200) and offset. |
upsert_translation_keys | translations:write | Creates keys and adds translations in bulk (max 200 keys per call). |
upsert_translation_keys takes projectId, keys and an optional overwrite flag. Each item in keys has:
| Field | Required | Description |
|---|---|---|
key | Yes | Letters, digits, dots, underscores and hyphens, max 200 characters |
defaultText | Yes | The source text, max 5000 characters |
namespace, category | No | Namespace for lazy-loaded bundles, and a free-form category |
translations | No | Locale code to text, for example { "no": "Hjem", "de": "Startseite" } |
Missing keys are created. Existing keys are only filled in: default text, namespace, category and locale values that are already set are kept, unless overwrite is true. Locale values are merged per locale, so sending one locale never removes another. The result lists the keys that were created, updated and unchanged, and any unsupportedLocales that are not enabled for the project. Those are still stored, so enable them under Translations in the dashboard to serve them.
Existing connections do not have the translation scopes yet. Reconnect the MCP server and choose read or write access again to enable these tools.