phonebook
Phonebook 把你团队已有的截图变成一一个 Storybook 风格组件画廊。无需新增任何测试代码,无需手动维护设计令牌——它把你代码库里已有的内容渲染成一个设计师无需安装任何东西就能打开的静态站点。每个仓库都独立运行 Phonebook;v1 是单平台的,因此一个 Android 仓库(或一个 iOS 仓库)会产出一个 bundle 和一个站点。
功能
零新增测试代码——复用你已经写好的
@Preview/#Preview无需 SaaS 账号——自托管,完全在你的 CI 或本地运行
MCP 优先——编码智能体可以为你检查配置、分析覆盖率、补充缺少的预览,并为你构建画廊
智能组件分组——从预览名称推断出
component / state卡片,无需任何注解跨平台——Android(Roborazzi + ComposablePreviewScanner,在 JVM 上运行,无需模拟器)和 iOS(SnapshotPreviews,在模拟器上运行)
对版本敏感的准备——
init/doctor会根据项目的 Kotlin 版本解析出兼容的库版本,并会在 Kotlin/Roborazzi 元数据不匹配导致晦涩的编译器崩溃之前把它抓捕
Related MCP server: Storybook MCP
演示


从 samples/ios 生成的画廊——component / state 卡片来自该应用自己的 #Previews,没有额外注解。
工作原理
phonebook generate运行你的平台的预览渲染引擎,并把输出收集成一个 bundle(manifest.json+images/)。Android:Roborazzi + ComposablePreviewScanner,通过 Robolectric 在 JVM 上运行。无需模拟器,在 Linux CI 上也能跑。
iOS:SnapshotPreviews,通过
xcodebuild test在模拟器上运行。需要 macOS。
phonebook build把这个 bundle 变成一行式静态站点——默认情况下它直接把index.html写进 bundle 目录(复用其中已有的images/,不复制),因此站点最终位于<bundle>/index.html。传-o <dir>则会把所有内容复制成一个独立的网站目录(用于发布到其他位置,或稍后合并多个 bundle)。纯 HTML/CSS/JS,用file://或任何静态托管都能打开。
安装
npm install -g @stag-build/phonebookbrew install stag-build/phonebook/phonebook或者先 tap 仓库再安装:
brew tap stag-build/phonebook
brew install phonebookFormula 来源:stag-build/homebrew-phonebook。
npx @stag-build/phonebook <cmd>与编码智能体一起使用(推荐)
大多数人不会直接运行 CLI——Phonebook 的设计目标就是由编码智能体(Claude Code、Codex 等)通过其 MCP 服务器来驱动。智能体会为你补充修正预览,检查运行配置,并生成画廊;底层的 CLI 是它调用的引擎。
服务器通过 npx @stag-build/phonebook mcp 运行——无需安装步骤。在下面按客户端选择配置即可。
claude mcp add phonebook -- npx -y @stag-build/phonebook mcp添加到 ~/.codex/config.toml:
[mcp_servers.phonebook]
command = "npx"
args = ["-y", "@stag-build/phonebook", "mcp"]添加到你的 Claude Desktop 配置(macOS 为 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"phonebook": {
"command": "npx",
"args": ["-y", "@stag-build/phonebook", "mcp"]
}
}
}添加到 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局级):
{
"mcpServers": {
"phonebook": {
"command": "npx",
"args": ["-y", "@stag-build/phonebook", "mcp"]
}
}
}添加到项目兼容区根目录的 .codex/config.toml。Xcode 的智能体运行在极简的 PATH 下,因此这条命令把 npx 包在一个 shell 里,先用常规路径补全 Homebrew/nvm:
[mcp_servers.phonebook]
command = "/bin/zsh"
args = [
"-lc",
"PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin; npx -y @stag-build/phonebook mcp"
]
enabled = true把 mcpServers 配置块添加到 ~/Library/Developer/Xcode/CodingAssistant/ClaudeAgentConfig/.claude.json:
{
"mcpServers": {
"phonebook": {
"command": "/bin/zsh",
"args": [
"-lc",
"PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin; npx -y @stag-build/phonebook mcp"
]
}
}
}Android Studio(Gemini 智能模式): 尚不支持——它的 MCP 集成只能连接远程 httpUrl 服务器,不是 Phonebook 这类本地 stdio 进程。请使用上面基于终端的任一客户端(Claude Code、Codex CLI)在 Android 仓库中运行。
然后,在 Android 或 iOS 仓库的对话中直接说:
"Use the phonebook MCP and create a catalog for my designer."
智能体会自然而然地处理其余的事——检查交集、补齐缺失的预览、生成并构建站点。想更精确地下指令,它还提供了:check_setup(配置诊断,与 phonebook doctor 相同)、analyze_coverage(找出缺失预览或深色变体的组件)、get_preview_catalog、run_generate 和 run_build。
快速入门:Android
先执行 phonebook init——它会检测你项目的 Kotlin 版本,并打印出这些步骤,且其中的库版本已解析为兼容版本(例如 Kotlin 2.0 项目会得到 Roborazzi 1.60.0,Kotlin 2.2+ 则拿到最新版)。下面的版本是当前 Kotlin 项目会得到的版本(完整可运行示例见 samples/android/app/build.gradle.kts):
// app/build.gradle.kts
plugins {
id("io.github.takahirom.roborazzi") // root build.gradle.kts: version "1.72.0" apply false
}
roborazzi {
generateComposePreviewRobolectricTests {
enable = true
packages = listOf("dev.stag.phonebook.sample") // your app's package
}
}
dependencies {
testImplementation("org.robolectric:robolectric:4.14.1")
testImplementation("io.github.takahirom.roborazzi:roborazzi:1.72.0")
testImplementation("io.github.takahirom.roborazzi:roborazzi-compose:1.72.0")
testImplementation("io.github.sergio-sastre.ComposablePreviewScanner:android:0.9.3")
testImplementation("io.github.takahirom.roborazzi:roborazzi-compose-preview-scanner-support:1.72.0")
testImplementation("androidx.compose.ui:ui-test-junit4") // version from your Compose BOM, or pin one
}在 settings.gradle.kts 旁添加 phonebook.config.json:
{
"appName": "My Android App",
"platform": "android",
"android": { "modules": [":app"], "variant": "debug" }
}然后,在包含 Phonebook 的仓库中执行:
npx @stag-build/phonebook generate -C /path/to/your/android/repo
npx @stag-build/phonebook build -C /path/to/your/android/repo打开 phonebook-out/index.html。
快速入门:iOS
把 SnapshotPreviews 作为 SPM 包添加进项目,并添加一个继承 SnapshotTest 的小型 XCTest target(完整可运行示例见 samples/ios):
// PhonebookSnapshotTests.swift
import SnapshottingTests
final class PhonebookSnapshotTests: SnapshotTest {
override class func snapshotPreviews() -> [String]? {
return nil // record every #Preview
}
}在你的 .xcodeproj 旁添加 phonebook.config.json:
{
"appName": "My iOS App",
"platform": "ios",
"ios": {
"project": "MyApp.xcodeproj",
"scheme": "MyApp",
"simulator": "iPhone 17 Pro"
}
}你的 scheme 必须配备、测试这个快照测试 target(可参考示例里的 PhonebookSample.xcscheme)。然后执行:
npx @stag-build/phonebook generate -C /path/to/your/ios/repo
npx @stag-build/phonebook build -C /path/to/your/ios/repo打开 phonebook-out/index.html。
命名规范
Phonebook 会根据你已有的预览名字,把截图分组为 component / state 卡片——无需额外注解。完整规则与示例见 docs/naming-convention.md。
配置
phonebook.config.json:
Key | Type | Default | Notes |
| string | — | 必填。显示在画廊顶部。 |
|
| — | 必填。 |
| string |
| Bundle 输出目录,相对配置文件解析。 |
| string[] |
| 要录制的 Gradle 模块。 |
| string |
| 构建变体;Phonebook 会运行 |
| string | — |
|
| string | — |
|
| string | — | 必填。包含 SnapshotPreviews 测试 target 的 scheme。 |
| string |
| 用于 |
| string | 自动检测 |
|
generate 和 build 都接受 -C <dir>(包含 phonebook.config.json 的项目目录)。generate 可用 -o <dir> 覆盖 bundle 输出位置,用 --allow-empty 允许 不产出预览的运行。build 接受一个可选 bundle 路径——不传时使用项目的 bundle 目录——以及用于站点输出的 -o <dir>;不带 -o 时,build 会把 index.html 直接写进 bundle 目录,并就地复用它的 images/(不复制),这正是上面快速入门里所用的方式。传入 -o <dir> 则会把 bundle 的资源复制到独立的普通站点目录。
phonebook init 与 phonebook doctor
phonebook init 会检测你的平台,并搭建 phonebook.config.json 以及相关依赖/安装代码片段——库版本都针对你的 Kotlin 版本解析好,app 包名也填好了。它绝不会代你构建文件。
phonebook doctor 检查 generate 需要的所有系统是否都已就绪:插件与测试依赖(使用 Gradle 版本目录时也会一并解析)、扫描器的 packages 值、Kotlin/Roborazzi 兼容性,以及工具链(JDK/Xcode/模拟器)。加一个 --deep 还会额外编译测试源码——更慢,但当静态检查与真实状况不符时更有权威。在 iOS 上,如果已链接 SnapshotPreviews 但还没有 SnapshotTest 的子类,doctor 会指出该加在哪个 target、哪个文件夹(从 .pbxproj 中解析出来),所以绝不会只被告诉“你自己加个类”却不知道加在哪。
phonebook init --write-snapshot-class 是 init 不写文件的唯一例外:当 doctor 在 iOS 上找到链接 target,并且该 target 的源码目录属于 Xcode 的 filesystem-synchronized groups 之一时,它会直接写好 <folder>/PhonebookSnapshots.swift——这样做是安全的,因为同步目录会被 Xcode 自动收录,不需要改 project.pbxproj。其他情况一律拒绝(并给出原因):Snapshots/photo 流程还没接好、项目不是同步组,或子类已存在。
phonebook mcp 启动 MCP 服务器——配置与示例关键词,见上面的“与编码智能体一起使用”。
系统要求
Android:需要 JDK 17+。无需模拟器 — Roborazzi 通过 Robolectric 在 JVM 上渲染,因此 generate 可以在 Linux CI 上运行。
iOS:需要已安装 Xcode 的 macOS,外加一个已启动或可启动的模拟器(generate 会针对指定的模拟器目标运行 xcodebuild test)。CI 中需要一个 macOS runner。
CI 配置方案请参见 docs/ci.md,命名规则请参见 docs/naming-convention.md。
路线图
v1 之后(M5),尚未实现:
在生成的图库中支持搜索和筛选
多 bundle 合并与并排视图(跨平台站点)
两次运行之间的版本差异对比(manifest 中已包含 commit 与图片哈希,可用来支持此功能)
更多 CI 配置方案文档
许可证
MIT — 参见 LICENSE。
Available Tools
5 toolsanalyze_coverageA
Scan the codebase for UI components and the previews that cover them: which have previews, which states/themes are missing. Read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Project directory containing phonebook.config.json | . |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, and it explicitly says 'Read-only,' which is the most critical safety trait for this tool. It does not mention potential runtime cost, config lookup behavior, or output shape, but the read-only guarantee is clearly and directly stated.
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 tight sentences with no filler. The main action and expected results are front-loaded, and 'Read-only' is appended as a concise safety qualifier without disrupting flow.
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 low-complexity tool with one optional, fully documented parameter and no output schema, the description provides enough context: what is scanned, what categories are reported, and that it is read-only. It would be slightly stronger with an explicit workflow hint relative to the sibling tools, but nothing essential to invoking it correctly is missing.
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?
The schema has 100% coverage for the single dir parameter: it documents type, default, and the 'Project directory containing phonebook.config.json' expectation. The tool description adds no parameter detail, but because the schema already fully documents it, the baseline of 3 applies.
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 opens with a concrete verb and resource: 'Scan the codebase for UI components and the previews that cover them.' It also names specific outcomes—which components have previews and which states/themes are missing—so an agent can distinguish this analysis task from siblings like run_generate or check_setup.
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 read-only analysis intent is clear, and the wording implies it is useful for assessing preview coverage before generation. However, the description never explicitly says when to prefer analyze_coverage over get_preview_guidance or how it fits relative to run_generate/run_build, so usage guidance remains implicit rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_setupA
Check that the project is correctly set up for phonebook generate (same checks as phonebook doctor): libraries wired, test target present, JDK/Xcode/simulator available.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Project directory containing phonebook.config.json | . |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does communicate that the tool performs checks, names the checks (libraries, test target, JDK/Xcode/simulator), and implies a read-only nature. However, it does not describe failure behavior, exit codes, output format, or whether the tool attempts any fixes, leaving some behavioral ambiguity.
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 one tight, well-structured sentence. It front-loads the purpose, gives the equivalence to `phonebook doctor`, and lists the main checks without wasted words.
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 simple single-parameter check tool with no output schema and no annotations, the description covers the essential context: what is checked and why. It could be slightly more complete by stating what a successful or failed check returns, but the current level is adequate for selection and invocation.
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?
The single parameter `dir` is fully documented in the schema with a clear description and default value, so schema coverage is 100%. The tool description adds no additional parameter semantics, which is acceptable given the schema already handles it.
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 uses a specific verb ('Check') and resource ('project setup'), names the exact command it supports (`phonebook generate`), and enumerates the concrete checks performed. It clearly distinguishes itself from generation/build tools like `run_generate` and `run_build`.
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 clearly implies this is a precondition check for `phonebook generate`, and the reference to `phonebook doctor` provides an equivalence that helps the agent understand behavior. It does not explicitly state 'use before run_generate' or list when not to use it, so it falls just short of full explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_preview_guidanceA
Return the preview naming convention plus a ready-to-paste preview code template for a component, so any agent writes consistent previews.
| Name | Required | Description | Default |
|---|---|---|---|
| states | No | State names, e.g. ["Enabled", "Disabled"] | |
| platform | Yes | Target platform | |
| component | No | Component name, e.g. "Button" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the behavioral disclosure burden. It clearly discloses a non-mutating return ('Return') and the output type (naming convention + template), but it does not describe output format, failure behavior, or prerequisites. For a simple getter this is adequate but incomplete.
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?
One sentence with no filler, and the key deliverable is front-loaded before the outcome clause. Every phrase earns its place.
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?
Only three parameters with 100% schema coverage reduce the burden on the description. However, with no annotations and no output schema, the description could usefully state how platform, states, and component are handled, or when this guidance should be fetched relative to run_generate and run_build. These are gaps but not fatal ones.
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%, so the baseline for this dimension is 3. The description's 'for a component' aligns with the 'component' parameter but adds no value beyond the schema's documented parameters; nothing is said about how states or platform affect the returned template.
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 uses a specific verb ('Return') and identifies a concrete resource ('preview naming convention plus a ready-to-paste preview code template'), with the desired outcome 'so any agent writes consistent previews.' It clearly separates itself from execution-oriented siblings like run_generate and run_build, though it does not explicitly name them.
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 phrase 'so any agent writes consistent previews' implies this tool should be consulted before writing a preview, but there is no explicit statement of when to use it versus siblings or when not to use it. It lists no alternatives and no exclusion conditions, leaving agents to infer its place in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_buildA
Build the static gallery site from a bundle, same as phonebook build <bundle>.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle | Yes | Bundle directory produced by run_generate / `phonebook generate` | |
| output | No | Site output directory (default: the bundle directory itself, reusing its images) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the core action; it does not disclose side effects such as writing into the bundle directory, overwriting output, or requirements. The output default noted in the schema is useful but outside the description, so the description itself carries too little behavioral burden.
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 front-loaded sentence with no filler, and the CLI-equivalent note is a compact way to anchor expected behavior. It is appropriately sized for a simple build command.
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 two-parameter tool with full schema coverage, the inputs are adequately specified, but the missing usage routing and side-effect disclosure leave the agent to infer workflow and safety. With no annotations or output schema, a bit more context would make it complete.
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%, with both 'bundle' and 'output' documented, so the baseline applies. The description adds no parameter semantics beyond the schema other than echoing 'bundle'.
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 opens with an explicit verb ('Build') and resource ('static gallery site'), and identifies the input ('from a bundle'), which clearly separates it from the sibling generation/analysis/check tools. The CLI alias reinforces the exact operation without ambiguity.
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 'from a bundle' wording and the schema's 'produced by run_generate' hint imply a build-after-generate workflow, but the description does not explicitly say when to use this tool versus siblings like run_generate or analyze_coverage. No when-not or alternative conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_generateB
Run the platform engine to render all previews and produce a bundle (manifest + images), same as phonebook generate.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Project directory containing phonebook.config.json | . |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden of behavioral disclosure. It explains the action and output but does not mention side effects (e.g., writing files to disk), prerequisites (e.g., a valid config file), or what the tool returns. For a generation tool that likely mutates the project directory, this lack of detail is a significant gap.
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 that front-loads the action and result, then adds the CLI reference. There is no fluff or redundancy. It could benefit from a second sentence about prerequisites, but it earns a high score for efficiency and clear focus.
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?
With no annotations and no output schema, the description must cover the essentials. It states what the tool does and references the CLI, but it omits return value details, potential side effects, and any environmental requirements. Since the tool is simple (one parameter), the definition is adequate but not fully complete for an agent that has never seen the CLI command.
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?
The schema fully documents the only parameter (`dir`) with a clear description and default value, so the schema does the heavy lifting. The tool description adds no additional context about the parameter, such as path validation or behavior when omitted. Baseline 3 is appropriate given the high schema coverage.
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 states a specific verb ('Run the platform engine') and the concrete outcome ('render all previews and produce a bundle (manifest + images)'). It also references the CLI equivalent (`phonebook generate`), which anchors its role. The intended output clearly differentiates it from siblings like run_build or analyze_coverage, even though no explicit comparison is made.
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 usage when you need to generate previews and a bundle, but it does not state when NOT to use this tool or mention alternatives. The CLI equivalence gives a hint, but there is no explicit context about choosing this over run_build or other sibling tools. It falls at 'implied usage' rather than providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: analyzing coverage, checking setup, providing guidance, generating a bundle, and building the site. There is no meaningful overlap between any of the five tools.
All tool names follow a consistent verb_noun pattern with clear verbs like analyze, check, get, and run. The naming is uniform and predictable.
Five tools is well-scoped for the phonebook preview workflow, covering setup, guidance, analysis, generation, and building without unnecessary extras or missing essentials.
The tools cover the full intended workflow: check environment, learn conventions, analyze coverage, generate previews, and build the gallery. There are no obvious dead ends or significant missing operations for this domain.
Maintenance
Related MCP Connectors
Serves your design system and coding standards to coding agents, so they stop guessing.
Turns any agent into a full agentic application — branded, interactive screens generated at runtime.
Live React design-system APIs, patterns, and code validation so AI agents build real UI, not slop.
Code intelligence platform for AI agents. 20 tools for architecture, security & impact analysis.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables AI agents to build, test, debug, and interact with Kotlin Multiplatform Mobile (Android/iOS) applications through automated build pipelines, UI automation, crash analysis, and app state inspection.15181MIT

Storybook MCPofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with Storybook by exposing UI component information and development workflows through the Model Context Protocol.270MIT- AlicenseAqualityAmaintenanceEnables AI agents to render and screenshot isolated UI components instantly across multiple browsers without a dev server or Storybook.226601MIT
- AlicenseAqualityCmaintenanceTurns AI coding hosts into a guided mobile-UI design tool with design interviews, token contracts, linters, and local browser preview.814MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/stag-build/phonebook'
If you have feedback or need assistance with the MCP directory API, please join our Discord server