
Top 8 Tips When Working With Kiro
This blog post describes several tips on working with Kiro, so you can be more productive.
Kiro is the new AI IDE that can help you deliver code quickly. It has some nice features including Agent Steering, Agentic Chat, Hooks and Spec-driven Development. All these fit together to make it easier for you to be more productive as a developer.
While Kiro in itself is a powerful feature rich IDE, with Visual Studio Code as its foundation, it’s not always obvious how to get the most out of the agentic features. Since launch an amazing community of tens of thousands of developers have tried out Kiro and a several patterns and tips have emerged. Let’s take a look at a few I recommend you use while working with Kiro.
Model Context Protocol (MCP)
One of our most popular features is our MCP support. MCP, or Model Context Protocol, is an open standard for AI apps, like Kiro, to connect to tools and data. I recommend you setup some MCP tools inside Kiro as you start using it. As of today we only support the MCP stdio transport, however look for more future updates on this soon.
Setup Your Favorite MCP Servers
There are thousands of MCP servers you can choose from. I’ve found these three to be very useful when you’re first getting started with Kiro. All these MCP servers will help you more easily find information that isn’t normally in Kiro’s context.
- Context7 - Up-to-date documentation for LLMs and AI code editors.
- GitHub’s official MCP Server - Connects AI tools directly to GitHub's platform.
- Brave Search MCP - Web search API using Brave Search API.
If you’re working on AWS projects another two great additions are:
- AWS Documentation - Access AWS documentation, search for content, and get recommendations.
- AWS Cloud Control API MCP - Create and manage over 1,100 AWS resources through natural language.
Try some of these servers and see which works the best for you.
Here are some other tips you can use when working with MCP and Kiro.
Combine MCP Server Execution
A common pattern I like to do is to combine some of these MCP servers together. For example, I might ask Kiro to search using the AWS Documentation MCP server, then use that output for the AWS API MCP server to run the commands.
Search the AWS Documentation MCP server on how to add a new file to S3. Then use the AWS API to create a upload xyz.txt to the abc bucket.
I also like using multiple servers for more complex tasks where I’m doing heavy research on a project. For example, I might use Context7 to find out the URL for a tool I’m using, then use the Brave Search MCP server to look up the site and get more information.
Steering and Context
Steering gives Kiro persistent knowledge about your project through markdown files in
.kiro/steering/ . Instead of explaining your conventions in every chat, steering files ensure Kiro consistently follows your established patterns, libraries, and standards.Whenever you chat with Kiro, it will include the steering files into the context. This will help to produce a more reliable result. In the following tips we’ll look at different ways you can configure and adjust how steering works, and what will be included into the context.
Generate New Steering Files for Project
When working with a new project inside Kiro it’s advisable to always generate steering files . You can do this by clicking on the ghost icon on the left hand side and then clicking on the
Generate Steering Docs in Agent Steering .
This will create three different files,
structure.md , product.md and finally tech . These files will then be added to the context whenever you chat with Kiro. It’s worth mentioning that these files do not change and you’ll need to manually update them, when needed. There is an option at the top to Refine . This will re-read your steering file and optimize it further for your project. You can also ask at any time in the chat to update your steering files based on new updates.Save MCP Output to Steering
When dealing with documentation MCP servers, I often ask Kiro to save the output to the steering files. That way I can easily refer to it in the future, and Kiro will be aware of it. For example, I might have it look up the latest documentation on Tailwind CSS 4 using Context7, and have it save it to a steering file all in one prompt.
Using the Context7 MCP server please find the latest installation instructions for Tailwind CSS 4 and save it to a steering file.
Keep in mind to always be explicit with your prompts. Be sure to ask it to use the MCP server and save the output to a steering file. By saving the information into the steering files, you no longer have to continually ask Kiro to check the MCP server.
I’ve found that large language models (LLMs) often are a version or two behind the latest releases of libraries. This will guarantee that Kiro is up to date.
While this works for most cases, if you have documentation that goes stale quickly you may want to use a different pattern as discussed in the next section.
Steering Files + MCP
If you’re working with documentation that is frequently updated you can also reference MCP servers directly in your steering files.
Plain text
# MathJSON DSL OverviewThis project uses MathJSON, a domain-specific language for mathematical expressions. MathJSON provides a structured way to represent and manipulate mathematical formulas using JSON syntax.## Key Documentation ReferencesThe complete MathJSON documentation is available in the brianjbeach/mathjson repository. Use the GitHub MCP server to access these files:- **Main Documentation**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="README.md"- **Function Reference**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="function_reference.md"- **Syntax Reference**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="syntax_reference.md"- **Examples**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="examples.md"- **Environment Variables**: Use `mcp_github_get_file_contents` with owner="brianjbeach", repo="mathjson", path="ENVIRONMENT_VARIABLES.md"- **Troubleshooting**: Use `mcp_github_get_file_contents` with owner="brianjbeach",
In this example it will use the Github MCP Server to find the latest information on the fictious
MathJSON domain-specific language (Thank you Brian Beach for this example). This way, the steering file is always kept up-to-date without further manual updates. Beware it will take longer for Kiro to contact the MCP server on each request, versus a static steering file.Use File Matching Patterns and Inclusions
Within steering documents you have the ability to only include them into the context only when certain conditions are met.
You can add a YAML front matter to the top of the document. Then add
inclusion and fileMatchPattern . This way you can define your steering files to only be added into context when editing certain types of files.For example you can have the steering file only be included for
*.tsx files in the components folder.Plain text
---inclusion: fileMatchfileMatchPattern: "components/**/*.tsx"---
Furthermore, you can also set the
inclusion to manual.Plain text
---inclusion: manual---
By doing so the steering file will only be included on-deman by referencing them with #steering-file-name in your chat message. This will give you a more precise control over when specialized context is needed.
Specs
Specs or specifications are structured artifacts that formalize the development process for complex features in your application. This is good for taking high-level ideas and creating a detailed requirements, specifications and task list.
Updating Specs To Keep Them Up to Date
One problem I see often with specs are keeping them up to date. After a feature is completed you may have future updates. Depending on the feature you may want to create a completely new spec. Other times you may want to update the current spec.
To update the current spec you can look for the
design.md or requirements.md file in the .kiro/specs folder. You can then change the specs based on the new requirements. Afterwords click Update tasks inside the task list so it updates it to see the new requirements.
At any time you can update the design and requirements using a prompt or updating it manually inside the markdown files and clicking
Update tasks Use Chat To Guide Task List
After the requirements and design docs are completed you’re left with a Task list. You can interact with this task list a couple of ways. You can either click the
Start task button and have it complete each task.
However, a better way of handling this is to use the chat and be very specific what you need. For example you could type:
Please complete tasks 1-4, stop at 4.
This will then complete tasks one-by-one until it hits task four then stops. This is a good pattern because you want to double check what Kiro is doing at each step. You also want to be able to easily rollback if needed, or do some additional refactoring.
In addition, before you start the spec process you’ll want to create a new branch in your version control system. That way you can track the changes and revert back everything quickly if needed. You can tell Kiro to revert the changes too, but I find this to be easier. When working with AI coding agents in general it’s always good to commit early, commit often and merge quickly. And don’t forget to refactor.
Conclusion
I hope these tips help you! I’d love to hear what tips you have when working with Kiro and other coding agents. Leave a comment below, and check out our best practices blog as well!
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article