Skip to main content
Glama

extrovert

让"内向"的 AI agent 变外向:一个本地常驻的 MCP 能力代理(capability broker)。agent 只需配置一次 extrovert,之后就能自己检索官方 MCP Registry、自动安装第三方 MCP 服务器、做冒烟验证,并把新工具热挂载进来——全程不需要用户介入,也不需要重启 agent。

它的触发点不是用户口令,而是任务规划阶段:agent 拆解任务时,对每个属于通用外部能力的子任务(图/视频/音频生成、文档解析、爬取、SaaS API 等),先走 extrovert 流程找现成能力,而不是从零手搓。

Make your "introverted" AI agent extroverted: a local MCP capability broker. Configure extrovert once, and the agent can search the official MCP Registry, install third-party MCP servers, smoke-verify them, and hot-mount their tools at runtime — no user intervention, no restarts. The trigger is the agent's task-planning phase, not a user password: while decomposing a task, the agent checks each generic-capability subtask against extrovert before building anything from scratch.

30 秒安装 / 30-second install

不用手动编辑任何配置:把 INSTALL.md 里的魔法提示词粘贴给任意 agent,它会自己执行 pip install → extrovert doctor → extrovert install 完成注册,然后让你重启会话。

No manual config editing: paste the magic prompt from INSTALL.md into any agent; it runs pip install → extrovert doctor → extrovert install itself, then asks you to restart the session.

Related MCP server: MCPfinder

架构 / Architecture

┌──────────────┐   MCP (stdio, 一次配置)   ┌───────────────────────────────┐
│  AI agent    │ ◄──────────────────────► │           extrovert           │
│ Claude Code  │                          │  capability_search / add /    │
│ Kimi Code …  │   ◄── notifications/     │  verify / list / remove       │
│              │      tools/list_changed  │                               │
└──────────────┘                          │  mounts:                      │
                                          │   fs__*  ──► npx -y <pkg>     │
                                          │   db__*  ──► uvx <pkg>        │
                                          │   echo__* ─► python3 s.py     │
                                          └───────┬───────────┬───────────┘
                                          HTTPS   ▼           ▼ 子进程 (stdio)
                              registry.modelcontextprotocol.io

工作原理 / How it works

  1. 发现 Discover — capability_search(query) 检索官方 MCP Registry,返回结构化候选(名称、描述、版本、npm/pypi 包名)。/ searches the official MCP Registry and returns structured candidates.

  2. 安装 Install — capability_add(identifier) 把注册表条目解析成启动命令(npm → npx -y <pkg>;pypi → uvx <pkg> 或 python3 -m <pkg>),以 scrub 过的环境变量启动子进程并完成 MCP 握手。也接受显式本地命令,如 python3 /path/to/server.py。/ resolves the entry into a launch command, spawns it with a scrubbed environment, and completes the MCP handshake. Explicit local commands are also accepted.

  3. 验证 Verify — capability_verify(alias) 冒烟检查:ping + list_tools,若存在无参数的 echo/ping/hello/version 类安全工具则真实调用一次,证据写入信任库 ~/.extrovert/trust.json。/ smoke check: ping + list_tools + one safe zero-argument probe call; evidence goes to the trust store.

  4. 挂载 Mount — 下游工具以 <alias>__<tool> 立即出现在工具列表中,并通过 notifications/tools/list_changed 通知客户端刷新;验证过的服务器会在下次启动时自动重挂载(~/.extrovert/config.json)。/ downstream tools appear immediately as <alias>__<tool>, the client is told via notifications/tools/list_changed, and verified servers auto-remount on next start.

规划期自检 / Planning-phase check

extrovert 的触发点是任务规划阶段,不是用户口令。agent 拆解任务后、动手之前:

任务 → 拆解 → 每个子任务问"这是通用能力吗" → capability_consider → 有则装验用,无则自己捏

capability_consider(task) 返回带本机验证状态的候选与建议措辞,结果有 10 分钟内存缓存;注册表不可达时优雅降级为"先自行实现"。自行实现的子任务应在总结里注明"已确认无现成能力"。这一行为由 skills/extrovert/SKILL.md(技能包)和 extrovert hint(hook 注入的一句话提醒)双重兜底。

安装 / Install

pip install extrovert-mcp        # 发布后 / once published
# 或从源码 / or from source:
pip install -e .

要求 Python ≥ 3.10。注册表里的 npm 服务器需要 npx;pypi 服务器优先用 uvx(未安装则回退 python3 -m,需该包已安装)。

CLI 子命令 / CLI subcommands

裸 extrovert(或 extrovert serve)运行 MCP 代理服务器;其余子命令用于安装与诊断:

  • extrovert doctor — 自检:Python/mcp SDK 版本、npx/uvx 可用性、注册表连通性(3s 超时)、extrovert hint 可执行性、~/.extrovert 可写性;关键项失败时退出码为 1

  • extrovert install — 检测本机客户端并注册 extrovert:有 claude CLI 就走 claude mcp add -s user extrovert -- <启动命令> 并用 claude mcp list 验证;Kimi Code 优先写 ~/.kimi-code/mcp.json 的 mcpServers,或向已含 [mcp_servers] 段的 config.toml 追加条目(均先备份为 .bak);格式不确定时不猜,打印片段让你手动粘贴。--dry-run 只看计划,--yes 跳过确认;--with-hook 额外把 extrovert hint 写进 Claude Code 的 ~/.claude/settings.json(UserPromptSubmit hook,备份且幂等)

  • extrovert uninstall — 反向移除(--with-hook 时一并摘除 hook)

  • extrovert hint — 打印一行规划期提醒,供客户端 hook 注入到用户消息上下文

Skill 触发包 / Skill pack

仓库自带 skills/extrovert/SKILL.md,让 agent 在规划阶段自发对每个子任务做通用能力自检(capability_consider),并可靠地走 add → verify → 调用流程(含失败必须如实报告、反模式清单等约束)。安装方式:软链或复制到 agent 的技能目录,例如 ln -s $PWD/skills/extrovert ~/.agents/skills/extrovert。

The repo ships skills/extrovert/SKILL.md so agents run a planning-phase capability check on every subtask and route through extrovert. Symlink or copy it into your agent's skills directory, e.g. ~/.agents/skills/extrovert.

客户端配置 / Client configuration

Claude Code

claude mcp add -s user extrovert -- extrovert

或写入 ~/.claude.json / 项目 .mcp.json:

{
  "mcpServers": {
    "extrovert": { "command": "extrovert" }
  }
}

Kimi Code

写入 ~/.kimi-code/mcp.json(或 $KIMI_CODE_HOME/mcp.json):

{
  "mcpServers": {
    "extrovert": { "command": "extrovert" }
  }
}

之后 agent 自己完成其余事情:"帮我找一个能操作文件系统的 MCP 服务器并装上" → capability_search → capability_add → capability_verify → 直接用 fs__* 工具。

工具 / Tools

工具

作用

capability_consider(task, limit=5)

规划期建议:该子任务有无现成能力(含本机验证状态;10 分钟缓存;断网降级为"自行实现")

capability_search(query, limit=5)

检索官方注册表;网络不可用时返回明确错误

capability_add(identifier, alias=None)

安装并挂载(注册表名如 com.example/foo,或本地命令);热挂载并发通知

capability_verify(alias)

ping + list_tools + 无参安全工具探针;结果写入信任库

capability_list()

列出挂载的服务器、工具、健康与验证状态、来源

capability_remove(alias)

终止子进程、注销工具、更新配置并发通知

数据文件 / State files

均在 ~/.extrovert/(可用环境变量 EXTROVERT_HOME 覆盖):

  • config.json — 已挂载服务器列表与 env_passthrough 白名单追加项

  • trust.json — 验证记录(时间戳、通过与否、证据摘要)

  • broker.log — JSON Lines 审计日志(安装/验证/移除/重挂载事件)

  • logs/<alias>.stderr.log — 各下游子进程的 stderr

安全说明 / Security

威胁模型(请务必读):

  • capability_add 会执行第三方代码。 安装来源仅限官方注册表条目或显式给出的本地命令,且每次安装都会写审计日志——但注册表条目不等于安全。

  • 子进程默认拿不到你的环境变量。 只透传 PATH/HOME/LANG 等白名单变量(API KEY、令牌之类默认不可见);需要时可在 config.json 的 env_passthrough 里显式追加。

  • 探针验证是活性检查,不是安全审计。 它只证明服务器能应答,不证明它 benign。

  • 挂载的第三方服务器拥有其进程权限内的一切能力;请只安装你信任的发布者的服务器。

Threat model (please read): capability_add executes third-party code. Sources are restricted to official-registry entries or explicit local commands, and every install is audit-logged — but registry presence is not a safety guarantee. Subprocesses only see a whitelist of environment variables (API keys and tokens are withheld by default; opt in via env_passthrough). Probe verification is a liveness check, not a security audit. Only install servers from publishers you trust.

路线图 / Roadmap

  • A2A Agent Card 发现 — 除 MCP Registry 外,支持发现 A2A 协议的 Agent Card 并桥接调用。

  • 技能库沉淀 — 把验证过的用法、参数模板沉淀为可复用的技能描述,减少重复探索。

  • 探针验证强化 — 更丰富的只读探针、输出模式校验、挂载前的静态启发式检查。

开发 / Development

pip install -e ".[dev]"
python3 -m pytest tests/ -x -q

测试覆盖:注册表响应解析(mock 数据)、本地 echo 服务器挂载与代理调用、verify/remove/remount、断线错误路径,以及一个真实拉起 extrovert 进程的端到端集成测试(网络可用时会真实检索官方注册表)。

已知限制 / Known limitations

  • 仅支持 stdio 传输;registry 中仅提供 remote(streamable-http)端点的服务器暂不支持。

  • 代理工具的入参 schema 由下游 JSON Schema 综合而成:嵌套 object/array 的内部结构在代理侧不展开(下游服务器仍做权威校验)。

  • 可选参数未传时不会向下游发送显式 null。

  • 首个挂载超时默认 90 秒(EXTROVERT_MOUNT_TIMEOUT 可调),npm 包首次下载可能较慢。

License

MIT © yourlarok

Available Tools

6 tools
capability_addA

Install and mount an MCP server. identifier is either a registry server name (e.g. 'com.example/foo', see capability_search) or a local stdio command (e.g. 'python3 /path/to/server.py'). The server's tools become available immediately as '__'.

NameRequiredDescriptionDefault
aliasNo
identifierYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose two valuable traits: the server becomes live immediately and its tools are exposed as '<alias>__<tool>'. It says nothing about whether the install persists across restarts, what happens on a bad identifier or unreachable command, whether it is idempotent when adding the same server twice, or what permissions/network access are required for a mutation of this kind.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, then the parameter semantics, then the observable effect. No filler, and the parenthetical cross-reference to capability_search is placed exactly where the agent would need it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained, and the core semantics are covered for a two-parameter tool. But this is an unannotated state-mutating operation: persistence, failure behavior, and the interaction with capability_remove/capability_list (does the new server show up there?) are all unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it handles the required `identifier` thoroughly — both accepted forms with literal examples. The `alias` parameter is only conveyed indirectly via the '<alias>__<tool>' naming template; the description never says what happens when alias is omitted/null or whether it must be unique.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Install and mount an MCP server" is a specific verb+resource pair, and the description immediately distinguishes the two identifier modes (registry name vs local stdio command). It also explicitly points at capability_search for the registry-name case, so the agent can separate this from its siblings without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names the condition for one path ("see capability_search" when you need a registry name) and shows a concrete local-command form, which is clear usage context. It stops short of stating when to use capability_add versus capability_consider or capability_verify, or any prerequisite/ordering (e.g. search first, consider before add).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capability_considerA

Planning-phase advice: given a subtask description, suggest existing capabilities from the official MCP Registry that could do it (with local verification status). Call while decomposing a task, before implementing anything yourself. Results are cached for 10 minutes; registry outages degrade to 'implement it yourself' advice. Use capability_search for raw candidate lists.

NameRequiredDescriptionDefault
taskYes
limitNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses the 10-minute cache window and the degradation path during registry outages (falls back to 'implement it yourself' advice). It stops short of saying whether the call has any side effects or what latency/cost to expect, which is the main remaining gap for a zero-annotation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the core purpose, then usage timing, then operational caveats, then the sibling pointer. No sentence is padding and each adds a distinct decision-relevant fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation isn't required, and the description still flags that results include local verification status plus the caching/failure behavior. The only real omission is the `limit` parameter, which matters for a tool that surfaces ranked suggestions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. "Given a subtask description" usefully frames the `task` parameter as a subtask rather than a whole task, but the `limit` parameter (default 5) is never mentioned in the description, leaving half the parameters undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: suggest existing capabilities from the official MCP Registry for a given subtask, with local verification status. It also explicitly distinguishes itself from the sibling capability_search (raw candidate lists), so an agent can choose between them without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Call while decomposing a task, before implementing anything yourself" gives a concrete lifecycle point, and "Use capability_search for raw candidate lists" names the alternative and the condition that selects it. Both the when and the when-not are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capability_listA

List mounted capability servers with their tools, source, health and verification status.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose what each entry contains (tools, source, health, verification status), which is genuinely useful, but it never states that the operation is side-effect free, whether it requires the servers to be reachable, or how costly/slow the health probing is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler; the verb and scope come first and the returned fields follow. Nothing is repeated from structured data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the parameter list is empty, so the remaining burden is small and the description covers the core behavior plus the shape of each listed entry. It stops short of stating read-only semantics or any operational caveats around the health check.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so there is no parameter semantics to explain; the baseline for a no-arg tool is 4. The description correctly avoids inventing filter options that the empty schema does not support.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (mounted capability servers), plus the fields surfaced (tools, source, health, verification status). The enumeration framing implicitly contrasts with capability_search, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'List mounted' suggests a full inventory sweep, in contrast to a query-style tool like capability_search. There is no explicit when-to-use, when-not-to-use, or alternative-routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capability_removeA

Unmount a capability server: terminate its subprocess, unregister its '__' tools and remove it from the persisted config.

NameRequiredDescriptionDefault
aliasYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and does well by disclosing the concrete side effects: subprocess termination, tool unregistration, and persisted config removal. It omits whether removal is irreversible or requires specific permissions, but the core mutation behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler; every clause adds specific operational detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. The description adequately covers the removal side effects and scope; only a stronger irreversibility or authorization warning would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the single alias parameter. It partially does by showing that alias is used in the '<alias>__<tool>' tool naming convention, but it does not define alias format, source, or validation constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ("Unmount") and resource ("capability server") and enumerates the exact effects: terminate subprocess, unregister tools, remove persisted config. It is clearly distinguishable from sibling tools like capability_add, capability_list, and capability_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is strongly implied by the removal semantics, but the description does not explicitly state when to use this tool versus alternatives (e.g., capability_add for adding, capability_verify for checking). No when-not conditions or sibling routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

capability_verifyA

Smoke-test a mounted server: ping, list_tools, and one safe zero-argument probe call (echo/ping/hello/version) when available. The result is recorded in the local trust store. This is a liveness check, not a security audit.

NameRequiredDescriptionDefault
aliasYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does a good job: it discloses that the tool performs outbound calls (ping, list_tools, probe) and, importantly, that results are written to the local trust store — a side effect an agent would otherwise not anticipate. It omits failure/timeout semantics and whether the trust-store write is reversible, keeping it out of 5 territory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, no redundancy: the mechanism comes first, the side effect second, and the scope limitation last. Every clause adds information the agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description adequately covers mechanism and side effects for a zero-annotation tool. The one meaningful gap is the unexplained 'alias' parameter, which leaves the invocation less complete than it could be.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the single required parameter 'alias' is never mentioned in the description. The phrase 'a mounted server' only weakly implies that alias identifies which mounted server is being probed; the agent must infer format, source, and validity from the schema title alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (smoke-test) and a specific resource (a mounted server), then enumerates the exact steps: ping, list_tools, and a single safe zero-argument probe. It is clearly distinct from the sibling set (search/consider/add/list/remove), which concern discovery and lifecycle rather than liveness checking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the use case (establishing liveness of a mounted server) and explicitly bounds it with 'This is a liveness check, not a security audit', telling the agent when not to expect security findings from it. It does not name a sibling alternative or a prerequisite condition, so it falls just short of a 5.

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.

  1. 6 tool updatesv0.1.0
    • First observedcapability_add
    • First observedcapability_consider
    • First observedcapability_list
    • First observedcapability_remove
    • First observedcapability_search
    • First observedcapability_verify

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation4/5

Each tool maps to a distinct lifecycle step (search, consider, add, verify, list, remove), but capability_search and capability_consider both query the official MCP Registry and could be confused; the descriptions do clarify that consider gives planning advice with verification status while search returns raw candidates.

Naming Consistency5/5

All six tools share the same capability_<verb> snake_case pattern with clear, single-word verbs (search, consider, add, verify, list, remove).

Tool Count5/5

Six tools is a well-scoped set that exactly covers the discovery-to-removal lifecycle of mounting MCP servers, with no redundant entries.

Completeness4/5

The mount lifecycle is fully covered (find, plan, install, smoke-test, inspect, unmount), but there is no operation to update/reconfigure an already-mounted server or its alias, and the trust store written by capability_verify is only visible indirectly via capability_list.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables agents to discover, compare, and install other MCP servers using natural language tasks, backed by a searchable index of thousands of servers.
    6
    96 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    AI-first MCP server discovery tool that enables agents to search, inspect, and install MCP servers from multiple registries.
    13
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server registry and marketplace that enables dynamic discovery, installation, and activation of tools at runtime, allowing AI agents to use new tools without restarting.
    413 npm
    7
    MIT