Skip to content

Kiro MCP β€” Connecting External Tools

Model Context Protocol (MCP) is an open standard developed by Anthropic that allows AI systems to connect to external data sources, APIs, and tools. In Kiro, MCP gives the AI agent access to live information beyond what’s in your codebase β€” database schemas, project management tickets, version control history, cloud resources, and more.

Think of MCP servers as plugins that extend what Kiro can see and do:

Kiro AI Agent
β”‚
β”œβ”€β”€ [Your Codebase] ← always available
β”œβ”€β”€ [MCP: GitHub] ← reads issues, PRs, repos
β”œβ”€β”€ [MCP: Jira] ← reads tickets, sprints, epics
β”œβ”€β”€ [MCP: SQL Server] ← reads live schema, runs queries
└── [MCP: GitLab] ← reads pipelines, merge requests

Without MCP, Kiro only knows what’s in your open files and project. With MCP, it can look up a Jira ticket by ID, check your actual database schema before generating migrations, or read a GitHub issue before writing code to fix it.


Without MCPWith MCP
Database schemaMust paste it manuallyKiro queries it live
Jira ticket detailsYou describe the ticketKiro reads the ticket directly
GitHub issueYou summarize itKiro fetches full thread
AWS resourcesYou explain the setupKiro reads from AWS

Kiro uses MCP servers as background processes that it can call during a conversation. When you say β€œImplement the feature described in PROJ-1234”, Kiro:

  1. Recognises the ticket reference
  2. Calls the Atlassian MCP server to fetch PROJ-1234
  3. Reads the ticket description, acceptance criteria, and comments
  4. Uses that context when writing the spec and code

MCP servers are configured in Kiro’s settings UI or via a .kiro/mcp.json file in your project root.

  1. Open Kiro β†’ Settings (gear icon)
  2. Navigate to MCP Servers
  3. Click Add MCP Server
  4. Choose the server type or enter custom config

Create a file at .kiro/mcp.json in your project root:

{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
},
"atlassian": {
"command": "npx",
"args": ["-y", "@atlassian/mcp-atlassian"],
"env": {
"JIRA_URL": "https://your-org.atlassian.net",
"JIRA_EMAIL": "${JIRA_EMAIL}",
"JIRA_API_TOKEN": "${JIRA_API_TOKEN}"
}
}
}
}

Environment variables prefixed with ${...} are resolved from your shell environment β€” keep secrets out of the file and in your environment instead.


Each MCP server runs as a separate process that Kiro starts and stops automatically:

Kiro starts β†’ MCP servers launch in background
User makes request β†’ Kiro calls relevant MCP server(s)
Kiro session ends β†’ MCP servers shut down

Servers are only contacted when Kiro determines they’re relevant to the current task. They don’t run continuously or consume resources when idle.


In Kiro, you can see which MCP servers are connected and healthy:

  • Kiro panel β†’ look for the MCP indicator (plug icon)
  • Green = connected and responding
  • Red = failed to start (check credentials and server package)
  • Grey = not yet needed (will start on first relevant request)

  • Never commit API tokens or credentials to .kiro/mcp.json β€” use environment variable references
  • Add .kiro/mcp.json to .gitignore if it contains any org-specific URLs you don’t want shared
  • MCP servers run locally β€” credentials are not sent to Kiro’s cloud servers, only to the target service (Jira, GitHub, etc.)
  • Review what permissions each MCP server requests β€” some can write as well as read

The following pages cover the most common MCP servers used with Kiro: