Kiro MCP Integration with Claude
Kiro MCP Integration with Claude
Overview
Kiro is Amazon's agentic AI-powered IDE that uses Claude (via Amazon Bedrock) as its AI backbone. Kiro natively supports the Model Context Protocol (MCP), allowing it to connect to external tools and data sources during agentic coding sessions. This integration enables Kiro's AI agents to interact with APIs, databases, documentation systems, and other services — all from within your development workflow.
What is Kiro?
Kiro was launched by AWS in July 2025 as a spec-driven agentic IDE — a VS Code-based environment that brings structure to AI-assisted development. Rather than treating AI as a simple autocomplete tool, Kiro operates through a methodology of structured specifications, turning natural language prompts into comprehensive technical plans before writing a single line of code.
Kiro's three core concepts are:
- Specs: A structured three-file system (
requirements.md,design.md,tasks.md) that defines what to build, how to build it, and what steps are needed. Written using EARS (Easy Approach to Requirements Syntax). - Agent Hooks: Automated triggers that fire predefined agent actions when IDE events occur — such as auto-generating documentation on save, running quality checks on commit, or updating tests when code changes.
- Steering Files: Persistent project knowledge stored in
.kiro/steering/as Markdown files. Steering gives Kiro's agents durable context about your tech stack, coding standards, and project structure that survives across sessions.
What is MCP?
Model Context Protocol (MCP) is an open standard developed by Anthropic that allows AI models like Claude to connect to external tools and data sources. MCP servers act as bridges between the AI and external services, exposing capabilities (tools) that the AI can invoke during a session.
In Kiro, MCP servers extend what Kiro's agents can do. With MCP configured, Kiro can:
- Search and retrieve documentation from external knowledge bases
- Read and write files via filesystem servers
- Query GitHub repositories, issues, and pull requests
- Interact with REST APIs and databases
- Fetch live web content for research during a coding task
- Connect to any MCP-compliant service (Slack, Jira, BookStack, etc.)
Claude as Kiro's AI Backend
Kiro uses Claude (licensed through Amazon Bedrock) as its underlying AI model. Users can select between:
- Claude Sonnet 4.5 — the default model, optimized for reliable advanced coding and reasoning
- Auto — a mixed-model mode that uses multiple frontier models for intent detection and caching to balance quality, latency, and cost
Because Kiro routes through Amazon Bedrock, it benefits from AWS's enterprise security, data residency controls, and compliance posture — making it suitable for organizations with strict data handling requirements.
Prerequisites
- Kiro IDE installed (macOS Intel/Apple Silicon, Windows, or Linux)
- An AWS account (required for Kiro authentication and Bedrock access)
- Node.js 18+ (for running npm/npx-based MCP servers locally)
- The MCP server package(s) you want to connect to Kiro
- Any API credentials or tokens required by those MCP servers
Setup
1. Locate the MCP Configuration File
Kiro loads MCP server configuration from two locations:
- Workspace-level:
.kiro/settings/mcp.json(checked into your repo; applies to that project only) - User-level:
~/.kiro/settings/mcp.json(applies globally across all projects)
Workspace-level settings take precedence over user-level settings when both exist.
2. Configure an MCP Server
Edit the appropriate mcp.json file and add your server definition. Kiro uses the same JSON structure as other MCP-compatible hosts:
{
"mcpServers": {
"bookstack": {
"command": "npx",
"args": ["-y", "bookstack-mcp"],
"env": {
"BOOKSTACK_BASE_URL": "${BOOKSTACK_BASE_URL}",
"BOOKSTACK_TOKEN_ID": "${BOOKSTACK_TOKEN_ID}",
"BOOKSTACK_TOKEN_SECRET": "${BOOKSTACK_TOKEN_SECRET}"
}
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}
Use ${VARIABLE_NAME} syntax to reference environment variables rather than hardcoding secrets directly in the config file.
3. Remote MCP Servers
Kiro also supports remote MCP servers via HTTP/SSE. Use the url property instead of command:
{
"mcpServers": {
"my-remote-server": {
"url": "https://mcp.example.com/sse",
"headers": {
"Authorization": "Bearer ${MY_API_TOKEN}"
}
}
}
}
4. Restrict Dangerous Tools
You can prevent Kiro from invoking specific MCP tools using the disabledTools property:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"],
"disabledTools": ["delete_file", "move_file"]
}
}
}
5. Reload Kiro
After saving mcp.json, Kiro will detect the change and make the MCP tools available to agents in your next chat or spec session. No full restart is typically required.
Common MCP Servers for Kiro
| Server | Package | What It Provides |
|---|---|---|
| Filesystem | @modelcontextprotocol/server-filesystem |
Read/write files outside the workspace |
| GitHub | @modelcontextprotocol/server-github |
Search repos, read issues and PRs, create comments |
| BookStack | bookstack-mcp |
Read/write internal documentation in BookStack |
| Fetch / Web | @modelcontextprotocol/server-fetch |
Retrieve live web pages and documentation |
| Brave Search | @modelcontextprotocol/server-brave-search |
Web search results for research tasks |
| PostgreSQL | @modelcontextprotocol/server-postgres |
Query and inspect a PostgreSQL database |
| Slack | @modelcontextprotocol/server-slack |
Read and post Slack messages |
A full community directory of available MCP servers is listed in the official Kiro documentation at kiro.dev/docs/mcp/servers/.
Example Use Cases
Pull documentation while writing code
"Implement a BookStack API client in Python. Use the BookStack MCP to look up the current API spec and generate a working client class."
Kiro will invoke the BookStack MCP to read your internal API docs and use that context to generate accurate implementation code — no copy-pasting required.
Spec-driven feature with GitHub context
"Read GitHub issue #142 and generate a Kiro spec for implementing the requested feature."
Kiro calls the GitHub MCP to fetch the issue body and comments, then generates requirements.md, design.md, and tasks.md grounded in the actual issue text.
Query a database to write a migration
"Inspect the current schema of the users table in our dev database and write a migration to add an audit_log column."
Kiro uses the PostgreSQL MCP to introspect the live schema, then writes a migration file that accurately targets existing columns and types.
Auto-update docs via Agent Hook
Configure an Agent Hook in .kiro/hooks/ to trigger on file save. When a function signature changes, the hook fires and Kiro uses the BookStack MCP to update the relevant internal documentation page automatically.
Security Considerations
- Environment variables over hardcoded values: Always use
${VAR}references inmcp.json. Hardcoded secrets committed to version control are a significant risk. - Workspace vs. user config: Be careful about checking workspace-level
mcp.jsoninto shared repos if it contains server definitions that reference environment variables specific to individual developers. - disabledTools: Use the
disabledToolsfield to limit what Kiro's agents can do with a given MCP server — especially for servers that can delete or overwrite data. - Trusted servers only: Only connect Kiro to MCP servers you trust. Remote servers receive requests that may include code context and file contents.
- Bedrock data handling: Prompts sent to Claude through Kiro are processed via Amazon Bedrock. Review AWS Bedrock's data use and retention policies for compliance requirements.
Troubleshooting
| Issue | Resolution |
|---|---|
| MCP tools not available in Kiro chat | Verify mcp.json is valid JSON; check Kiro's MCP panel for error messages |
| Environment variable not resolving | Ensure the variable is exported in your shell environment before launching Kiro |
| MCP server exits immediately | Run the server command manually in a terminal to check for missing dependencies or bad args |
| Remote server connection refused | Confirm the URL is reachable; check firewall rules and any VPN requirements |
| Agent ignores MCP tools | Mention the tool or data source explicitly in your prompt to guide Kiro's agent to use it |
| Steering files not applied | Ensure files are in .kiro/steering/ with a .md extension; check for YAML front matter if using conditional inclusion |