Setup by IDE
Feri works with any IDE or agent that supports MCP servers and runs a tool-calling session. Here is exactly where the MCP server, skill, and steering go on each one.
How the pieces map
Feri has three parts. Only the first is required to run:
- The MCP server (required): the Feri process your IDE launches and calls as a tool. Every supported IDE registers this the same way, in its own MCP config file.
- The skill (
skill/skill.md): documents the tools and how to use them. - The steering file (
steering/feri.md): sets runtime behaviour, like polling cadence and stop handling.
Skills and steering are native, separate concepts in Kiro. Other IDEs have one mechanism for persistent custom instructions (rules files, custom instructions, guidelines). On those, put the contents of both the skill and the steering file into that mechanism and set it to always apply. The behaviour is the same; only the home differs.
Compatibility
The requirement is MCP support plus an agent that can call tools between tasks. Tools without MCP are not supported (see the bottom of this page).
| IDE / agent | MCP | Skill + steering home | Supported |
|---|---|---|---|
| Kiro | Yes | Native: Agent Skills + Steering (.kiro/steering/*.md). 1:1 with skill/skill.md and steering/feri.md. | ✅ |
| Cursor | Yes | Project Rules: .cursor/rules/*.mdc (set alwaysApply: true). | ✅ |
| Claude Code | Yes | CLAUDE.md (repo root or ~/.claude/CLAUDE.md); skills under .claude/skills/. | ✅ |
| Devin Desktop (formerly Windsurf) | Yes | Rules: .devin/rules/*.md (or .windsurf/rules fallback); global_rules.md. Agent: Cascade. | ✅ |
| VS Code + Copilot | Yes | .github/copilot-instructions.md (repo-wide) or *.instructions.md. | ✅ |
| Cline | Yes | Cline Rules: .clinerules/ (folder or file) in the workspace. | ✅ |
| Roo Code | Yes | Custom Instructions: .roo/rules/ directory. | ✅ |
| Continue | Yes | Rules: .continue/rules/. | ✅ |
| Zed | Yes | Instructions: a .rules file in the project root. | ✅ |
| JetBrains (Junie) | Yes | Junie Guidelines: .junie/guidelines.md. | ✅ |
| Visual Studio | Yes | .github/copilot-instructions.md (shared with Copilot). | ✅ |
| Amazon Q Developer | Yes | Project Rules: .amazonq/rules/*.md (auto-loaded as context). | ✅ |
| Goose | Yes | .goosehints (project or global). Closest to context hints, not first-class rules. | ✅ |
| Google Antigravity | Yes | Settings → Customizations → Rules; also reads AGENTS.md and GEMINI.md. | ✅ |
| Trae (ByteDance) | Yes | Project Rules: .trae/rules/project_rules.md (+ user_rules.md). | ✅ |
| Augment Code | Yes | Rules: .augment/rules/*.md (+ .augment-guidelines, AGENTS.md). | ✅ |
| Warp | Yes | Project Rules in AGENTS.md (legacy WARP.md); global rules in Warp Drive. | ✅ |
| Qodo Gen | Yes | Agent instruction / best-practices files via the plugin. | ✅ |
1. Add the MCP server
First build Feri (npm install && npm run build),
then register the built entry point as a stdio MCP server. The
standard shape, used by most IDEs:
{
"mcpServers": {
"feri": {
"command": "node",
"args": ["/absolute/path/to/feri/dist/index.js"]
}
}
}
No secrets go in this file. Feri reads its own config and connection
code at boot. Use an absolute path to dist/index.js.
The root key is not the same everywhere. Get it wrong and the server silently won't load:
- Most IDEs use
mcpServers(the shape above). - VS Code + Copilot and Visual Studio use
servers. - Zed uses
context_servers(insettings.json). - Continue uses YAML, not JSON (see below).
- Goose registers MCP as an
extensionsentry inconfig.yaml.
VS Code / Visual Studio (servers key):
{
"servers": {
"feri": { "command": "node", "args": ["/absolute/path/to/feri/dist/index.js"] }
}
} Zed (context_servers in settings.json):
{
"context_servers": {
"feri": {
"command": { "path": "node", "args": ["/absolute/path/to/feri/dist/index.js"] }
}
}
} Continue (.continue/mcpServers/feri.yaml):
name: Feri
version: 0.0.1
schema: v1
mcpServers:
- name: feri
command: node
args:
- /absolute/path/to/feri/dist/index.js Claude Code (CLI, instead of editing a file):
claude mcp add feri -- node /absolute/path/to/feri/dist/index.js ~/.codeium/windsurf/mcp_config.json) and does not expand
environment variables. Google Antigravity uses
~/.gemini/antigravity/mcp_config.json; for HTTP servers it
expects serverUrl rather than url (not an
issue for Feri's stdio setup). Some tools (Trae, Augment, Qodo) manage
MCP through their UI rather than a fixed config file.
2. Add the skill + steering
On Kiro, drop skill/skill.md into your
skills directory and steering/feri.md into
.kiro/steering/. They load as a first-class skill and
steering file.
On every other IDE, paste the contents of both files into that IDE's persistent rules / instructions mechanism and set it to always apply. Where each one lives:
| IDE / agent | Rules / instructions location |
|---|---|
| Kiro | Native: Agent Skills + Steering (.kiro/steering/*.md). 1:1 with skill/skill.md and steering/feri.md. |
| Cursor | Project Rules: .cursor/rules/*.mdc (set alwaysApply: true). |
| Claude Code | CLAUDE.md (repo root or ~/.claude/CLAUDE.md); skills under .claude/skills/. |
| Devin Desktop (formerly Windsurf) | Rules: .devin/rules/*.md (or .windsurf/rules fallback); global_rules.md. Agent: Cascade. |
| VS Code + Copilot | .github/copilot-instructions.md (repo-wide) or *.instructions.md. |
| Cline | Cline Rules: .clinerules/ (folder or file) in the workspace. |
| Roo Code | Custom Instructions: .roo/rules/ directory. |
| Continue | Rules: .continue/rules/. |
| Zed | Instructions: a .rules file in the project root. |
| JetBrains (Junie) | Junie Guidelines: .junie/guidelines.md. |
| Visual Studio | .github/copilot-instructions.md (shared with Copilot). |
| Amazon Q Developer | Project Rules: .amazonq/rules/*.md (auto-loaded as context). |
| Goose | .goosehints (project or global). Closest to context hints, not first-class rules. |
| Google Antigravity | Settings → Customizations → Rules; also reads AGENTS.md and GEMINI.md. |
| Trae (ByteDance) | Project Rules: .trae/rules/project_rules.md (+ user_rules.md). |
| Augment Code | Rules: .augment/rules/*.md (+ .augment-guidelines, AGENTS.md). |
| Warp | Project Rules in AGENTS.md (legacy WARP.md); global rules in Warp Drive. |
| Qodo Gen | Agent instruction / best-practices files via the plugin. |
Per-IDE MCP reference
Exact MCP config file and root key for each supported IDE:
| IDE / agent | MCP config location | Root key | Format |
|---|---|---|---|
| Kiro | .kiro/settings/mcp.json (workspace) or ~/.kiro/settings/mcp.json (user) | mcpServers | JSON |
| Cursor | .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) | mcpServers | JSON |
| Claude Code | .mcp.json (repo root), or run claude mcp add | mcpServers | JSON / CLI |
| Devin Desktop (formerly Windsurf) | ~/.codeium/windsurf/mcp_config.json (global only; path unchanged after rebrand) | mcpServers | JSON |
| VS Code + Copilot | .vscode/mcp.json (workspace) | servers | JSON |
| Cline | cline_mcp_settings.json (MCP Servers panel → Configure) | mcpServers | JSON |
| Roo Code | .roo/mcp.json (project) or global mcp_settings.json | mcpServers | JSON |
| Continue | .continue/mcpServers/feri.yaml | mcpServers | YAML |
| Zed | settings.json | context_servers | JSON |
| JetBrains (AI Assistant / Junie) | MCP Settings UI → writes mcp.json | mcpServers | JSON / UI |
| Visual Studio | <solution>\.mcp.json or %USERPROFILE%\.mcp.json | servers | JSON |
| Amazon Q Developer | .amazonq/mcp.json (workspace) or ~/.aws/amazonq/mcp.json | mcpServers | JSON |
| Goose | ~/.config/goose/config.yaml (extensions:) or goose configure | extensions | YAML |
| Google Antigravity | ~/.gemini/antigravity/mcp_config.json (managed via Agent panel → MCP Servers) | mcpServers | JSON |
| Trae (ByteDance) | Managed in-app (AI panel); Cursor-compatible schema | mcpServers | JSON / UI |
| Augment Code | Settings panel or import JSON (stored in IDE settings) | mcpServers | JSON / UI |
| Warp | .warp/.mcp.json (project) or ~/.warp/.mcp.json (global) | mcpServers | JSON |
| Qodo Gen | Plugin UI (JSON import), agentic mode | mcpServers | JSON / UI |
Workspace-scoped config beats user/global config where both exist.
Visual Studio also auto-discovers .vscode/mcp.json and
.cursor/mcp.json, so a repo set up for another IDE may
work without changes.
Not supported
Feri needs an MCP client and an agent tool-loop. Tools that only do inline completion or chat, with no MCP client, can't run Feri:
- GitHub Copilot classic completions (inline autocomplete, non-agent). MCP only exists in Copilot agent mode inside VS Code, Visual Studio, and JetBrains, which are supported.
- Tabnine: no MCP client in its documentation.
- Legacy Codeium plugin (the pre-Windsurf VS Code / JetBrains plugin). MCP is in the Windsurf editor, which is supported.
- Replit Agent: Replit's docs cover building and hosting MCP servers, not the Agent consuming external stdio MCP servers in-session. Treat as unsupported until confirmed.
If your IDE has MCP support that isn't listed here, it most likely works. Open an issue on GitHub and we'll confirm it.