Skip to content

Getting Started with Kiro and MCP Servers: Connect Your AI IDE to Real-World Tools

7 minute read
Content level: Intermediate
1

Kiro is an AI-powered IDE that becomes significantly more capable when connected to MCP (Model Context Protocol) servers. This guide walks developers through installing, configuring, and verifying MCP servers in Kiro, and covers building first automations using steering files and hooks.

If you've installed Kiro and found yourself wondering why the AI agent feels limited, the answer is almost certainly MCP servers. Out of the box, Kiro can read and write files and run terminal commands — useful, but not transformative. MCP servers are what unlock its real potential. This guide walks you through installing, configuring, and verifying MCP servers in Kiro, then shows you how to build your first automation. No prior experience with MCP is required.

What Is Kiro?

Kiro is an AI-powered IDE built on a familiar editor experience. Unlike traditional AI assistants that only generate text, Kiro's agent can take actions — reading emails, searching messages, querying APIs, and writing files — all from a single chat interface.

What Are MCP Servers?

MCP stands for Model Context Protocol, an open standard that allows AI agents to communicate with external tools and services. MCP servers are lightweight processes that run locally on your machine and expose specific capabilities to Kiro. Think of them like plugins. Each server connects Kiro to a different system:

MCP Server TypeWhat It Unlocks
Email MCPRead and search your inbox, calendar, and contacts
Messaging MCPSearch and post to Slack or Microsoft Teams

Without MCP servers, Kiro is a capable code editor. With them, it becomes a workflow automation platform.

Prerequisites Before configuring MCP servers, ensure the following are installed on your machine.

Kiro IDE Download Kiro from the official Kiro website or your organization's approved distribution channel.

Python 3.11 or Later

python3 --version
# macOS: brew install python@3.12
# Ubuntu/Debian: sudo apt install python3.12

Node.js 22 or Later

node --version
# macOS: brew install node@22
# Linux (via nvm): nvm install 22

Authentication MCP servers connect to external services on your behalf. Before proceeding, ensure you are authenticated with the relevant services — whether through OAuth, API keys, SSO, or your organization's identity provider.

Step 1: Install MCP Server Binaries

MCP servers are command-line binaries that Kiro launches as background processes. Installation method depends on the server:

For example

# Via npm (most common for community MCP servers)
npm install -g @modelcontextprotocol/server-slack

# Via pip
pip install mcp-server-filesystem

# Via your organization's internal package manager
# Refer to your internal tooling documentation

After installing, verify each binary is accessible:

which my-mcp-server
# Expected output: /usr/local/bin/my-mcp-server

Note the full path for each server — you will need these in the next step.

Step 2: Configure MCP in Kiro

Kiro reads MCP server configuration from a JSON file. This file tells Kiro where to find each binary and what environment to pass to it.

Locate Your Binary Paths

which my-email-mcp        # e.g., /Users/yourname/.local/bin/my-email-mcp
which my-slack-mcp        # e.g., /usr/local/bin/my-slack-mcp


# Get your Node.js bin directory
dirname $(which node)     # e.g., /opt/homebrew/opt/node@22/bin

Create the Configuration File Create ~/.kiro/settings/mcp.json with the following structure:

{
  "mcpServers": {
    "my-email-mcp": {
      "command": "/full/path/to/my-email-mcp",
      "args": [],
      "env": {
        "PATH": "/opt/homebrew/opt/node@22/bin:/usr/local/bin:/usr/bin:/bin"
      }
    "disabled": false
    },
    "my-slack-mcp": {
      "command": "/full/path/to/my-slack-mcp",
      "args": [],
      "env": {
        "PATH": "/opt/homebrew/opt/node@22/bin:/usr/local/bin:/usr/bin:/bin"
      }
     "disabled": false
    }
  }
}

Replace each path with the actual output from your which commands.

Why These Settings Matter

  • Full paths are required. Kiro does not inherit your shell's PATH variable. If you write only the binary name, Kiro cannot locate it. Always use the absolute path returned by which.
  • env.PATH is necessary for Node-based servers. Some MCP servers call node internally. Because Kiro runs with a minimal environment, you must explicitly include the Node.js bin directory in env.PATH.
  • disabled: true keeps startup fast. You do not need every server running at all times. Disabled servers are skipped at startup and can be re-enabled when needed.

Configuration File Scope

File LocationScope
~/.kiro/settings/mcp.jsonUser-level — applies to all workspaces
.kiro/settings/mcp.jsonWorkspace-level — overrides user-level for this project

Use workspace-level configs when a project requires a specific set of MCP servers that differ from your defaults.

Step 3: Verify the Connection

  1. Open Kiro and open any workspace folder.
  2. Wait approximately 15 seconds for MCP servers to initialize.
  3. In the Kiro chat, test each server:
List my email folders
Search Slack for "standup"

If these return real data from your connected services, the MCP servers are working correctly.


Troubleshooting Common Errors

Access MCP logs at: View → Output → "Kiro - MCP Logs"

ErrorLikely CauseResolution
ENOENTBinary path is incorrectRe-run which and update the path in your config
Node.js not foundNode not in env.PATHAdd the Node.js bin directory to env.PATH
401 UnauthorizedAuthentication token expiredRe-authenticate with your identity provider
MCP Connection not foundServer process crashedRestart Kiro
disabled by organizationPolicy restrictionContact your Kiro administrator

Step 4: Build Your First Automation.

With MCP servers connected, Kiro supports three approaches to building automations.

Steering Files

Steering files are Markdown documents that define how Kiro should behave. They require no code — just plain instructions. Create .kiro/steering/my-workflow.md in your workspace:

for example: If one wants to prepare for daily standup

---
inclusion: auto
---

**Daily Standup Prep**

When the user says "prep standup", follow these steps:

1. Use the email MCP to find emails received in the last 24 hours.
2. Use the Slack MCP to find messages mentioning my name from the last 24 hours.
3. Compile the results into a bullet-point standup summary.
4. Save the output to output/standup.md.

Kiro reads this file automatically and follows the instructions when triggered. This is the recommended starting point for most workflows.


Hooks

Hooks trigger automatically when specific events occur. Create .kiro/hooks/my-hook.json:

{
  "name": "Lint on Save",
  "version": "1.0.0",
  "when": {
    "type": "fileEdited",
    "patterns": ["*.py"]
  },
  "then": {
    "type": "runCommand",
    "command": "python3 -m pylint ${file}"
  }
}

Use hooks for repetitive, event-driven tasks that should run without manual prompting.


Specs

For larger features, use Kiro's spec workflow. In the chat, describe what you want to build:

I want to build a tool that summarizes my open support tickets by priority

Kiro will guide you through requirements, design, and implementation tasks step by step.


Workflow Ideas

WorkflowMCP Servers NeededDescription
Daily standup prepEmail, SlackSummarizes yesterday's activity across channels
Meeting preparationEmail, CalendarPulls context for upcoming meetings
Weekly status reportTicketing, MessagingRolls up completed work for the week
Incident triageTicketing, InfrastructureSurfaces related tickets and service health data
Code review reminderTicketing, MessagingFlags pull requests awaiting review
Account summaryCRM, SupportCompiles open issues and health metrics

Tips for a Reliable Setup

  • Start with one MCP server. Get a single integration working before adding more. Debugging one server at a time is significantly easier.
  • Use steering files first. They are the lowest-friction way to define workflows — no code, just Markdown.
  • Re-authenticate when things break. The majority of MCP failures are caused by expired credentials, not misconfiguration.
  • Disable servers you are not using. Fewer active servers means faster startup and fewer potential failure points.
  • Check MCP Logs before assuming a bug. The log output at View → Output → "Kiro - MCP Logs" usually identifies the exact issue.
  • Use workspace-level configs for project-specific setups. Keep your user-level config minimal and override it per project as needed.

Additional Resources