EVOKORE-MCP

EVOKORE-MCP

Multi-server MCP aggregator with 266 skills, an orchestration runtime, fleet/claims coordination, and hook-driven session governance for autonomous Claude/Cursor/Gemini agent runs.

Category
访问服务器

README

<p align="center"> <img src=".github/social-preview.png" alt="EVOKORE-MCP — Multi-Server MCP Aggregator" width="1280" /> </p>

EVOKORE-MCP

Multi-server MCP aggregator with 266 skills, an orchestration runtime, fleet/claims coordination, and hook-driven session governance for autonomous Claude/Cursor/Gemini agent runs.

License: MIT Node MCP Version CI

EVOKORE-MCP is a TypeScript stdio/HTTP MCP router and multi-server aggregator. It gives an AI client a single MCP endpoint that combines EVOKORE's native workflow tools with proxied child servers defined in mcp.config.json, while adding namespace isolation, dynamic tool discovery, RBAC, rate limiting, human-in-the-loop approval controls, and persistent session continuity.

It is built for operators who run their own AI agents — locally, autonomously, on their own machine — and want a single configurable proxy in front of every other MCP server they use.

Table of contents

Quick start

# 1. Clone, install, build
git clone https://github.com/mattmre/EVOKORE-MCP-PUBLIC.git
cd EVOKORE-MCP-PUBLIC
npm ci
npm run build

# 2. Configure your environment
cp .env.example .env
# edit .env to add child-server credentials (optional)

# 3. Register EVOKORE with your MCP client
npm run sync:dry    # preview
npm run sync        # apply to Claude Code, Claude Desktop, Cursor, Copilot CLI, Codex CLI

Or register manually by pointing your client at dist/index.js:

{
  "mcpServers": {
    "evokore-mcp": {
      "command": "node",
      "args": ["/absolute/path/to/EVOKORE-MCP-PUBLIC/dist/index.js"]
    }
  }
}

Full setup including environment variables, child-server credentials, and per-client registration: docs/SETUP.md.

Security posture: dangerouslySkipPermissions: true

EVOKORE-MCP ships with "dangerouslySkipPermissions": true in .claude/settings.json. This is intentional and deliberate. Third-party security scanners will flag it; this section exists so the choice is explicit and defensible.

What this setting does

dangerouslySkipPermissions is a Claude Code setting that disables the built-in per-tool-call permission prompt. With it on, Claude does not stop to ask "allow this Bash command?" or "allow this file write?" between tool invocations. With it off, every tool call requires an interactive y/n.

Why EVOKORE ships it on

EVOKORE is an orchestration framework. Its native surface includes a fleet manager, panel-of-experts skill, multi-agent claims coordination, an orchestration runtime, and 266 skills that compose into long autonomous chains. A permission prompt between every Bash and Edit would interrupt those chains every few seconds and make the framework unusable for its intended workflows.

We compensate by moving the safety net out of the synchronous Claude Code permission prompt and into a hook-driven, repo-scoped policy layer that runs on every tool call:

Compensating control Where
Damage Control hook (49 rules: force pushes, history rewrites, working-tree wipes, fork bombs, reverse shells, encoded payloads, exfiltration, repo guardrails — many ask: true, some hard-block) damage-control-rules.yaml, scripts/hooks/damage-control.js
Purpose-gate hook (first-prompt intent capture + ongoing reminder injection) scripts/hooks/purpose-gate.js
Session replay (every tool call logged to JSONL for forensic review) scripts/hooks/session-replay.js
Evidence capture (test results, file changes, git ops captured as numbered evidence rows) scripts/hooks/evidence-capture.js
RBAC permissions (admin / developer / readonly) for proxied tools permissions.yml, EVOKORE_ROLE env var
OAuth bearer-token auth for HTTP transport docs/OAUTH_SETUP.md
Multi-tenant session isolation for HTTP transport docs/HTTP_DEPLOYMENT.md
HITL approval flow (_evokore_approval_token) for tools tagged require_approval permissions.yml, docs/USAGE.md

The net effect: EVOKORE swaps the interactive Claude Code prompt for a programmatic, declarative, auditable, repo-versioned policy that catches the same destructive operations and leaves a replay trail.

Threat model

This setting is for: developers running EVOKORE-MCP on their own machine, against their own filesystem and git repos, with their own API credentials, in a single-tenant workstation context.

This setting is NOT for: anyone exposing the MCP server to the public internet, multi-tenant environments without further hardening, or contexts where the operator cannot trust the agent prompts. If you are deploying EVOKORE over HTTP transport to remote clients, enable OAuth (see docs/OAUTH_SETUP.md), use the multi-tenant session isolation surface, and consider running the damage-control ruleset with the operator opt-in environment flags un-set.

How to opt out

If you would rather have Claude Code's native per-tool-call permission prompts back, edit .claude/settings.json:

{
  "dangerouslySkipPermissions": false
}

Then restart your Claude Code session. The damage-control hook, replay, evidence-capture, and purpose-gate continue to run regardless of this setting — they are independent layers.

Current capabilities

  • Single MCP endpoint for native EVOKORE tools plus proxied child servers (stdio default; HTTP transport via docs/HTTP_DEPLOYMENT.md).
  • 37 native tools across 10 managers — see Native tool surface.
  • Proxied server aggregation from mcp.config.json (default: github, fs; optional: elevenlabs, supabase, stitch, and local reverse-engineering integrations).
  • Tool prefixing in the form ${serverId}_${tool.name} to avoid namespace collisions.
  • Tool discovery modes: legacy (default — full native + proxied listing) and dynamic (always-visible native + session-activated proxied).
  • Discovery profiles with measured token budgets: coding, research, voice, legacy-full, legacy-dynamic — see docs/TOOL_DISCOVERY_PROFILES.md.
  • HITL approval flow via _evokore_approval_token: one-time, exact-args, short-lived retries for tagged tools.
  • RBAC permissions with admin / developer / readonly roles via EVOKORE_ROLE; backwards-compatible with flat permissions.
  • Rate limiting with configurable per-server and per-tool token buckets via rateLimit in mcp.config.json.
  • MCP resources + prompts (resources/list returns skill URIs and server-level resources; prompts/list returns resolve-workflow, skill-help, server-overview).
  • Tool annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint, title) on every native tool.
  • Skill ecosystem: 266 versioned skills with dependency resolution, remote registries, and sandboxed execution.
  • Session dashboard at 127.0.0.1:8899 via npm run dashboard, with HITL approval UI at /approvals.
  • Async proxy boot: child servers boot in the background so the MCP handshake completes immediately.
  • Hook-driven safety + observability (damage-control, purpose-gate, session-replay, evidence-capture, tilldone, voice-stop) — see Security posture.
  • Operator continuity tooling: session manifests, Claude memory sync, manifest-backed status summaries, npm run repo:audit.
  • Voice integrations: proxied ElevenLabs tools, VoiceMode guidance, standalone VoiceSidecar on ws://localhost:8888.
  • Plugin system: hot-reloadable plugins via plugins/ directory, with webhook event hooks.
  • Webhook events: HMAC-SHA256 signed events for tool calls, errors, sessions, approvals, plugin lifecycle.

System overview

flowchart LR
    Client[AI Client<br/>Claude / Cursor / Gemini / custom MCP host]
    Router[EVOKORE-MCP Router<br/>src/index.ts]
    Native[Native EVOKORE tools<br/>10 managers]
    Catalog[ToolCatalogIndex<br/>legacy or dynamic projection]
    Security[SecurityManager<br/>permissions.yml + RBAC]
    Proxy[ProxyManager<br/>prefixing + child routing + rate limiting]
    GitHub[github child server]
    FS[fs child server]
    Eleven[optional elevenlabs child server]
    Supa[optional supabase child server]
    Hooks[Hooks + observability<br/>scripts/* + ~/.evokore]
    Sidecar[VoiceSidecar<br/>ws://localhost:8888]
    Dashboard[Session Dashboard<br/>127.0.0.1:8899]

    Client --> Router
    Router --> Native
    Router --> Catalog
    Router --> Proxy
    Proxy --> Security
    Proxy --> GitHub
    Proxy --> FS
    Proxy --> Eleven
    Proxy --> Supa
    Client -. hook payloads .-> Hooks
    Hooks -. voice payloads .-> Sidecar
    Dashboard -. reads .-> Hooks

Native tool surface

37 native tools across 10 managers (proxied tools are dynamic and not counted here):

  • SkillManager (12): docs_architect, skill_creator, resolve_workflow, search_skills, get_skill_help, discover_tools, proxy_server_status, refresh_skills, fetch_skill, list_registry, execute_skill, describe_tool
  • ClaimsManager (4): claim_acquire, claim_release, claim_list, claim_sweep
  • FleetManager (4): fleet_spawn, fleet_claim, fleet_release, fleet_status
  • MemoryManager (3): memory_store, memory_search, memory_list
  • OrchestrationRuntime (3): orchestration_start, orchestration_stop, orchestration_status
  • SessionAnalyticsManager (4): session_context_health, session_analyze_replay, session_work_ratio, session_trust_report
  • TelemetryManager (2): get_telemetry, reset_telemetry
  • WorkerManager (2): worker_dispatch, worker_context
  • NavigationAnchorManager (2): nav_get_map, nav_read_anchor
  • PluginManager (1): reload_plugins

Operator paths

Contributor and maintainer paths

Runtime modules

Module Role
src/index.ts Main MCP server, request handlers, discovery-mode projection, MCP resources/prompts, session activation state
src/SkillManager.ts Skill-management tools (12 of 37 native), skill indexing, versioning, remote fetch, sandboxed execution
src/ProxyManager.ts Child-server boot (stdio + HTTP), prefixing, proxy execution, rate limiting, cooldown, env interpolation, async boot
src/ToolCatalogIndex.ts Unified native + proxied tool catalog, search index, projected tool listing
src/SecurityManager.ts HITL/allow/deny policy with RBAC role support (admin, developer, readonly)
src/HttpServer.ts StreamableHTTP server transport with OAuth, session isolation, per-session rate limiting
src/WebhookManager.ts HMAC-SHA256 signed webhook events with fire-and-forget delivery
src/PluginManager.ts External plugin loader with hot-reload via reload_plugins
src/VoiceSidecar.ts Standalone WebSocket voice runtime for hook-driven speech
permissions.yml Flat and role-based permission rules for proxied tools
mcp.config.json Child-server registry and rate-limit configuration
scripts/ Config sync, hooks, replay viewers, session dashboard, benchmark tooling, governance helpers

Testing

npm test                  # full vitest suite (102 test files)
npm run build             # tsc build
npm run repo:audit        # operator preflight (branch drift, worktree pressure, stale branches, control-plane drift)

No public CI runner is currently configured on the public mirror. Tests are run locally before each tagged release.

Latest release

v3.1.0 — see CHANGELOG.md for the entry. Highlights: TTS provider abstraction, file-backed session persistence, cross-CLI config sync, and tool-discovery tiering (named profiles, cursor pagination, schema-deferred bootstrap). Release notes will appear at GitHub Releases once the tag is published.

Contributing

This repository uses a PR-first workflow for meaningful changes. See CONTRIBUTING.md and CODE_OF_CONDUCT.md before opening a PR.

Short version:

  1. Branch from main.
  2. Keep docs and code aligned when you change runtime behavior.
  3. For process/tooling/release-impacting changes, follow .github/PULL_REQUEST_TEMPLATE.md.

Project governance

Contributors

<a href="https://github.com/mattmre/EVOKORE-MCP-PUBLIC/graphs/contributors"> <img src="https://contrib.rocks/image?repo=mattmre/EVOKORE-MCP-PUBLIC" alt="Contributors" /> </a>

Star history

Star History Chart

License

EVOKORE-MCP is released under the MIT License. Third-party skill packs vendored under SKILLS/ retain their original upstream licenses — see NOTICE for the per-upstream attribution table.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选