kiro-frontend-engineer-mcp
Provides tools for fetching and resolving pull request review comments on GitHub.
Allows fetching CI failure logs from GitHub Actions for automated self-healing.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kiro-frontend-engineer-mcprun design audit on https://example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kiro-frontend-engineer-mcp
A Model Context Protocol (MCP) server implementing a 7-stage agentic frontend workflow:
Design Audit — Web design inspection checklist (accessibility, layout stability, edge cases)
Component Blueprint — AI-driven component generation with full interactive states
Best Practices — React/Next.js guidelines applied before code generation
Browser Validation — Real browser run via kane-cli
E2E Testing — Playwright test execution with pass/fail capture
CI Self-Healing — Auto-fetch GitHub Actions failures and generate fixes
PR Review Loop — Auto-resolve PR review comments
Quick Start — Add to Your Project
Option 1: Kiro (recommended)
Add this to your project's .kiro/settings/mcp.json:
{
"mcpServers": {
"frontend-engineer": {
"command": "node",
"args": ["<path-to-this-repo>/dist/index.js"]
}
}
}Option 2: npx (after publishing to npm)
{
"mcpServers": {
"frontend-engineer": {
"command": "npx",
"args": ["-y", "kiro-frontend-engineer-mcp"]
}
}
}Option 3: Clone and build locally
git clone https://github.com/<your-username>/kiro-frontend-engineer-mcp.git
cd kiro-frontend-engineer-mcp
npm install
npm run buildThen point your MCP config to the built output:
{
"mcpServers": {
"frontend-engineer": {
"command": "node",
"args": ["./kiro-frontend-engineer-mcp/dist/index.js"]
}
}
}Related MCP server: jt-mcp-server
What It Provides
Resources (context the agent reads)
URI | Description |
| WCAG AA checklist, layout stability, responsive breakpoints |
| Server/Client components, TypeScript patterns, performance |
Prompts (agent personas)
Name | Description |
| Generates production-ready component blueprints from layout specs |
Tools (agent actions)
Name | Description |
| Visual browser validation via kane-cli |
| Run Playwright E2E tests |
| Fetch CI failure logs for self-healing |
| Fetch and resolve PR review comments |
Orchestration Flow
The agent should chain calls in this order:
Read web-design-guidelines → Call ui-ux-pro-max prompt → Read react-best-practices
→ Generate code → run_kane_cli → execute_playwright_test
→ (if CI fails) github_fetch_ci_logs → fix → push
→ (if PR comments) github_address_review_comments → resolve → pushPrerequisites
Node.js ≥ 18
ghCLI (for CI logs and PR comment tools) —gh auth loginPlaywright installed in your project (for E2E tool)
kane-cli (optional, for browser validation tool)
License
MIT
Available Tools
4 toolsexecute_playwright_testA
Run local Playwright E2E test suites on generated components. Captures terminal logs, test pass/fail results, and error screenshots.
| Name | Required | Description | Default |
|---|---|---|---|
| testPath | Yes | Path to test file or directory (relative to project root) | |
| headed | No | Run in headed mode for debugging (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses captured outputs (logs, results, screenshots) but omits other behavioral traits like side effects (e.g., file modifications, network requests) or prerequisites. It is not misleading but could be more comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the purpose, and includes essential details without any fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description covers key outputs (logs, results, screenshots). It could mention error handling or prerequisites (e.g., test framework setup), but overall it provides sufficient context for an agent to understand the tool's function and outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are clear. The tool description does not add additional semantics beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'run' and the resource 'local Playwright E2E test suites' with scope 'on generated components'. It also lists captured artifacts (logs, results, screenshots). This fully defines the tool's purpose and distinguishes it from sibling tools (GitHub comments, CI logs, CLI).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (for running Playwright tests) but provides no explicit when-not-to-use instructions or alternatives. Given sibling tools are unrelated, the implicit usage is adequate but not scored higher due to lack of explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_address_review_commentsC
Fetch open PR review comments from GitHub to feed back into agent context for automated resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | GitHub repository owner | |
| repo | Yes | GitHub repository name | |
| pullNumber | Yes | Pull request number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Fetch', which implies a read operation, but gives no details on side effects, authentication, rate limits, pagination, or whether it returns all comments or only specific types. The system's behavior on errors or empty results is also omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words. It is front-loaded with the action and purpose. While concise, it could include more information without sacrificing brevity, but no waste earns a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and the description does not explain the return format, structure, or content of the fetched comments. For a tool that feeds back into agent context, details on what the agent receives (e.g., list of comment objects, text, status) are critical. The description is incomplete in this aspect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions (owner, repo, pullNumber). The tool description does not add any extra semantics beyond the schema, such as formatting or constraints. Baseline 3 is appropriate since the schema itself is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches open PR review comments from GitHub for automated resolution. The verb 'Fetch' and resource 'open PR review comments' are specific, and the purpose is evident. Although the name 'address_review_comments' is ambiguous, the description clarifies. Sibling tools are in different domains, so no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not specify prerequisites, conditions, or scenarios where another tool would be more appropriate. For instance, there is no mention of when to use 'github_fetch_ci_logs' or others instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
github_fetch_ci_logsA
Fetch CI build/lint failure logs from GitHub Actions. Used for self-healing: agent reads failures and generates fixes.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | GitHub repository owner | |
| repo | Yes | GitHub repository name | |
| runId | Yes | GitHub Actions workflow run ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It implies a read-only fetch but omits details like permissions, rate limits, or handling of missing logs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no unnecessary words. Front-loaded with action, then states purpose. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three required parameters and no output schema, the description adequately covers purpose and usage. Could mention return format (e.g., raw logs) or limitations for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all three parameters. The description adds no additional meaning beyond 'owner', 'repo', and 'runId'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Fetch' and resource 'CI build/lint failure logs from GitHub Actions' are specific. The self-healing use case distinguishes it from unrelated siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the use case 'Used for self-healing: agent reads failures and generates fixes', providing clear context but no when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_kane_cliB
Orchestrate a real browser run via kane-cli. Accepts a target URL and optional interaction sequences (click, type, scroll) to visually validate rendered components.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL to open in headless browser | |
| interactions | No | Ordered list of browser interactions to perform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides some behavioral context: 'real browser run' and 'visually validate rendered components'. However, it omits side effects, required permissions, or error scenarios, leaving gaps despite lacking annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence immediately conveys the tool's purpose and key inputs. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two well-documented parameters and no output schema, the description adequately explains what the tool does. However, it lacks information about return values or result format, which is expected given the absence of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters. The description mentions 'optional interaction sequences (click, type, scroll)' which aligns with the schema but adds no extra meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool orchestrates a real browser run via kane-cli, accepts URL and optional interactions for visual validation. This distinguishes from siblings like github tools but not from execute_playwright_test, which is a similar browser testing tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as 'execute_playwright_test'. The description lacks context for selection criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
execute_playwright_test - First observed
github_address_review_comments - First observed
github_fetch_ci_logs - First observed
run_kane_cli
TDQS
Scored across 4 tools
Each tool serves a distinct purpose: local testing, PR review comments, CI logs, and visual browser validation. There is no overlap, so an agent can easily distinguish them.
Three tools follow a verb_noun pattern (execute_, github_fetch_, run_), but 'github_address_review_comments' breaks the pattern—it reads as a noun phrase with 'address' as a verb ambiguous. This inconsistency reduces predictability.
With 4 tools, the server is tightly scoped to core frontend engineering feedback loops: local tests, review comments, CI logs, and visual validation. No tool feels redundant or missing.
The set covers the primary stages of a frontend CI/CD workflow (test, review, CI, visual). A minor gap is the absence of a tool to directly apply generated fixes, but the agent can use existing tools iteratively.
Maintenance
Related MCP Connectors
MCP server for Mint — AI-powered QA that runs your app in a real browser on every PR.
MCP server for visual regression testing: triage a PR's UI diffs from your coding agent.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseCqualityAmaintenanceA production-grade MCP server that turns natural language intent into fully-architected, accessible, production-ready UI code through a 7-step agentic pipeline.201Apache 2.0
- AlicenseNot gradedqualityCmaintenanceMCP server that equips AI agents with dev workflow tools including GitHub project management, conventional commits, visual regression testing, Jira/Confluence integration, and a persistent memory knowledge graph.5 npmMIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives AI agents real browser capabilities including screenshotting, action execution, data extraction, and multi-persona auditing for frontend validation.23 npm6MIT
- AlicenseCqualityAmaintenanceAn MCP server implementing Spec-Driven Development workflows for AI-agent CLIs and IDEs like Claude Code and Cursor, enabling spec-first development with automated workflow guidance and quality checks.1612 npm52MIT