Token导航 LogoToken导航

Agent Skill · 研究检索

mcp_agent_mail(MCP Agent mail 搜索)

mcp_agent_mail 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

mcp_agent_mail 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证为 MIT,暂无第三方扫描结果,按安装量在研究检索类的 73,675 个 Skill 里排第 56,650。

总安装 447周安装 19GitHub Stars 公开资料未说明下载 157核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:mcp_agent_mail(MCP Agent mail 搜索)
来源仓库:https://github.com/zpankz/mcp-skillset
仓库路径:skills/mcp_agent_mail
安装命令:
npx skills add zpankz/mcp-skillset --skill "mcp_agent_mail"
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

AgentSkills.tonpx skills
npx skills add zpankz/mcp-skillset --skill "mcp_agent_mail"

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

发现并安装AI代理的技能工具集,提升多平台技能管理能力。适用于Codex、Claude、Cursor、Gemini CLI等平台中的技能扩展。通过npx命令快速添加指定技能模块至现有工作环境。

安装命令:npx skills add zpankz/mcp-skillset --skill "mcp_agent_mail 注意确认宿主平台兼容性及相关安全策略限制

来源仓库内路径:skills/mcp_agent_mail

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add zpankz/mcp-skillset --skill "mcp_agent_mail";命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

mcp_agent_mail 怎么安装?

在终端执行 npx skills add zpankz/mcp-skillset --skill "mcp_agent_mail"。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

mcp_agent_mail 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

mcp_agent_mail 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

mcp_agent_mail 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

mcp_agent_mail 用的人多吗?

公开数据是累计安装 447 次,近一周安装 19 次,下载 157 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

mcp_agent_mail 安全吗?

没有查到第三方扫描结果,安全性无法从公开资料判断,安装前请自行审查源码、依赖和命令行为。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 许可证明确为 MIT,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 没有第三方扫描结果,安全性只能靠自己读源码判断。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 要求有安全扫描结论才肯安装的团队。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
mcp_agent_mail

MCP Agent mail 搜索 · 本页

447—接触敏感数据MIT未收录

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

MCP Agent Mail Skill

"Use mcp_agent_mail for ANY multi-agent coordination"

FastMCP-based communication system enabling conflict-free collaboration between AI agents through structured messaging, advisory file locks, and cross-repository event coordination.


Core Principle

When multiple agents work on the same codebase, explicit coordination prevents:

  • Edit conflicts and merge disasters
  • Duplicated work on same features
  • Communication breakdowns
  • Lost context during handoffs
  • Race conditions on shared files

Agent Mail transforms implicit coordination into explicit, traceable protocols.


When to Use This Skill

Required Scenarios

Use mcp_agent_mail always when:

  1. Multiple Agents on Same Codebase

- Two or more agents editing project simultaneously - Parallel feature development - Concurrent bug fixes - Distributed refactoring

  1. File Conflict Risk

- Modifying shared configuration files - Editing core modules used by multiple features - Database migrations - API contract changes

  1. Task Dependencies

- Agent B needs Agent A's output - Sequential workflow steps (design → implement → test) - Work handoffs between agents - Integration of parallel work streams

  1. Cross-Repository Coordination

- Microservices that depend on each other - Monorepo multi-package changes - Deployment orchestration - Breaking changes affecting multiple services

Recommended Scenarios

Use mcp_agent_mail for:

  • Knowledge sharing between agents
  • Architecture decision discussions
  • Code review coordination
  • Progress tracking on long-running tasks
  • Emergency hotfix coordination

Key Capabilities

1. Agent Registration & Discovery

Register agent identity:

await tools.agent_mail.registerAgent({
  agent: {
    id: "claude-architect-1",
    name: "Claude Architect",
    role: "architect",
    capabilities: ["system-design", "typescript", "python"],
    contactPolicy: {
      acceptsDirectMessages: true,
      acceptsBroadcasts: true,
      priority: ["urgent", "high", "normal"],
      autoRespond: true
    },
    status: "active"
  }
});

Query available agents:

# Find all active implementers
agent-mail agents list --role implementer --status active

# Find agents with specific capability
agent-mail agents search --capability "react"

2. Structured Messaging

Direct Messages (Agent-to-Agent)
await tools.agent_mail.sendMessage({
  from: "agent-architect",
  to: "agent-implementer",
  subject: "Task Assignment: User Authentication Module",
  body: {
    text: `Please implement OAuth2 authentication.

    Requirements:
    - Support Google and GitHub providers
    - Implement token refresh
    - Add integration tests

    Documentation: /docs/auth-spec.md
    Deadline: Friday EOD`,
    files: ["/docs/auth-spec.md", "/src/auth/types.ts"]
  },
  priority: "high",
  type: "task"
});
Broadcast Messages (One-to-Many)
await tools.agent_mail.sendMessage({
  from: "coordinator",
  to: "broadcast",
  subject: "Code Freeze for Hotfix",
  body: {
    text: "Production incident. All agents please stop non-critical work and release file reservations."
  },
  priority: "urgent",
  type: "notification"
});
Threaded Conversations
// Start thread
const thread = await tools.agent_mail.createThread({
  subject: "Database Migration Strategy",
  participants: ["agent-a", "agent-b", "agent-dba"]
});

// Reply in thread
await tools.agent_mail.replyToThread({
  threadId: thread.id,
  body: { text: "I propose using Flyway for migrations." }
});

3. File Reservation System

Key Concept: Advisory locks prevent edit conflicts through voluntary coordination.

Reserve File (Exclusive)
// Reserve for editing
const reservation = await tools.agent_mail.reserveFile({
  agentId: "agent-a",
  path: "/src/auth/login.ts",
  purpose: "refactor",
  mode: "exclusive",  // Only I can access
  expiresIn: 3600,   // Auto-release after 1 hour
  metadata: {
    notes: "Extracting login logic to separate module"
  }
});

// Do work...
await modifyFile("/src/auth/login.ts");

// Release immediately after work
await tools.agent_mail.releaseReservation({
  reservationId: reservation.id
});
Reserve File (Shared)
// Multiple agents can read, none can write
await tools.agent_mail.reserveFile({
  agentId: "agent-analyzer",
  path: "/src/complex-module.ts",
  purpose: "read",
  mode: "shared",  // Allow other readers
  expiresIn: 1800
});
Check Before Reserving
// Always check first!
const existing = await tools.agent_mail.checkReservation({
  path: "/src/auth/login.ts"
});

if (existing.status === "active") {
  // File reserved by another agent
  await tools.agent_mail.sendMessage({
    to: existing.agentId,
    subject: "Request access to login.ts",
    body: { text: "Can we coordinate? I need to modify this file." }
  });
} else {
  // Free to reserve
  await tools.agent_mail.reserveFile({...});
}

4. Product Bus (Multi-Repo Events)

Coordinate across repositories:

// Emit deployment event
await tools.agent_mail.emitEvent({
  productId: "user-service",
  event: "deployment",
  payload: {
    version: "2.3.1",
    environment: "production",
    timestamp: new Date().toISOString()
  }
});

// Subscribe to events from other services
await tools.agent_mail.subscribeToEvents({
  productId: "api-gateway",
  events: ["breaking_change", "deployment"]
});

// Receive notification when dependency changes
// → Automatically triggered when subscribed event occurs

Common Workflows

Workflow 1: Task Assignment

Coordinator                     Implementer
    │                               │
    │ 1. Send task message          │
    │──────────────────────────────>│
    │                               │
    │ 2. Acknowledge receipt        │
    │<──────────────────────────────│
    │                               │
    │                   3. Reserve files
    │                    4. Do work
    │                               │
    │ 5. Send completion update     │
    │<──────────────────────────────│
    │                               │
    │                  6. Release files

Code:

// Step 1: Coordinator sends task
await tools.agent_mail.sendMessage({
  from: "coordinator",
  to: "implementer",
  subject: "Task: Implement Feature X",
  type: "task",
  body: { text: "See spec: /docs/feature-x.md" }
});

// Step 2: Implementer acknowledges
await tools.agent_mail.replyToMessage({
  messageId: "msg-123",
  body: { text: "Acknowledged. Starting now. ETA: 2 days." }
});

// Step 3: Reserve files
await tools.agent_mail.reserveFile({
  agentId: "implementer",
  path: "/src/feature-x/",
  purpose: "create",
  mode: "exclusive"
});

// Step 4: Do work
await implementFeature();

// Step 5: Notify completion
await tools.agent_mail.sendMessage({
  to: "coordinator",
  subject: "Task Complete: Feature X",
  type: "update",
  body: { text: "Feature X implemented. PR #456 ready for review." }
});

// Step 6: Release files
await tools.agent_mail.releaseReservation({ reservationId });

Workflow 2: Parallel Development

Coordinator
    │
    ├─> Agent A: Frontend (no conflicts)
    └─> Agent B: Backend (no conflicts)

    Agents coordinate via messages
    Files reserved to prevent overlap

Code:

// Coordinator broadcasts work distribution
await tools.agent_mail.sendMessage({
  from: "coordinator",
  to: "broadcast",
  subject: "Work Distribution: Feature Y",
  body: {
    text: `
    Agent A: Frontend UI (/src/ui/)
    Agent B: Backend API (/src/api/)
    Coordinate via thread "feature-y-dev"
    `
  }
});

// Each agent reserves their domain
await tools.agent_mail.reserveFile({
  agentId: "agent-a",
  path: "/src/ui/",
  purpose: "create",
  mode: "exclusive"
});

await tools.agent_mail.reserveFile({
  agentId: "agent-b",
  path: "/src/api/",
  purpose: "create",
  mode: "exclusive"
});

// Agents work in parallel without conflicts

Workflow 3: Emergency Hotfix

1. Emergency broadcast → All agents stop
2. Release all reservations
3. Hotfix agent reserves critical files
4. Apply fix
5. All-clear broadcast → Resume work

Code:

// Step 1: Emergency broadcast
await tools.agent_mail.sendMessage({
  to: "broadcast",
  subject: "🚨 EMERGENCY: Production Down",
  priority: "urgent",
  body: { text: "All agents: Stop work. Release reservations." }
});

// Step 2: All agents release
await tools.agent_mail.releaseAllReservations({
  agentId: myAgentId
});

// Step 3: Hotfix agent reserves
await tools.agent_mail.reserveFile({
  agentId: "hotfix-agent",
  path: "/src/critical-module.ts",
  purpose: "edit",
  mode: "exclusive"
});

// Step 4: Apply fix
await applyHotfix();

// Step 5: All-clear
await tools.agent_mail.sendMessage({
  to: "broadcast",
  subject: "✓ RESOLVED: Production Restored",
  priority: "high",
  body: { text: "Resume normal operations. Code freeze lifted." }
});

Message Priority Levels

PriorityResponse TimeUse Case
urgent< 5 minProduction incident, critical blocker
high< 1 hourImportant bug, pending release
normalSame dayStandard requests, questions
lowBest effortFYI updates, optional improvements

Reservation Modes Explained

Exclusive Mode

{ mode: "exclusive" }
  • Only reserving agent can access file
  • Prevents both reads and writes by others
  • Use for: editing, refactoring, deleting

Shared Mode

{ mode: "shared" }
  • Multiple agents can reserve for reading
  • No agent can write
  • Use for: analysis, research, non-destructive operations

Integration Patterns

Pattern 1: Check-Reserve-Work-Release

Always follow this sequence:

try {
  // 1. Check
  const existing = await tools.agent_mail.checkReservation({ path });
  if (existing.status === "active") {
    // Coordinate with owner
    return;
  }

  // 2. Reserve
  const reservation = await tools.agent_mail.reserveFile({
    agentId: myId,
    path,
    purpose: "edit",
    mode: "exclusive"
  });

  // 3. Work
  await doWork(path);

} finally {
  // 4. Release (always in finally block)
  await tools.agent_mail.releaseReservation({ reservationId });
}

Pattern 2: Announce-Reserve-Execute

For major work, announce intent first:

// 1. Announce
await tools.agent_mail.sendMessage({
  to: "broadcast",
  subject: "Planning auth refactor tomorrow",
  body: { text: "Will refactor /src/auth/ starting 9am." }
});

// Wait for objections...

// 2. Reserve
await tools.agent_mail.reserveFile({
  path: "/src/auth/",
  purpose: "refactor"
});

// 3. Execute
await refactorAuth();

// 4. Notify completion
await tools.agent_mail.sendMessage({
  to: "broadcast",
  subject: "Auth refactor complete",
  body: { text: "Changes pushed to main. Files released." }
});

Pattern 3: Request-Acknowledge-Complete (RAC)

Standard protocol for task assignment:

// Request
await sendMessage({ type: "task", subject: "Implement X" });

// Acknowledge (by receiver)
await replyToMessage({ body: { text: "Acknowledged. ETA: 2 days" } });

// Complete (by receiver)
await sendMessage({ type: "update", subject: "Task Complete" });

Anti-Patterns to Avoid

❌ Silent Work

// WRONG: Start editing without coordination
await modifyFile("/src/shared-module.ts");
// → Another agent modifies same file → conflict
// RIGHT: Coordinate first
await tools.agent_mail.reserveFile({
  path: "/src/shared-module.ts",
  purpose: "edit"
});
await modifyFile("/src/shared-module.ts");

❌ Reservation Hoarding

// WRONG: Reserve everything "just in case"
await reserveFile({ path: "/src/" }); // Entire directory
// → Blocks all other agents unnecessarily
// RIGHT: Reserve only what you'll modify
await reserveFile({ path: "/src/specific-file.ts" });

❌ Ignoring Reservations

// WRONG: Modify without checking
await modifyFile(path);
// RIGHT: Always check first
const reservation = await checkReservation({ path });
if (reservation.status === "active") {
  await coordinateWithOwner(reservation.agentId);
}

❌ Forgetting to Release

// WRONG: No cleanup
await reserveFile({ path });
await doWork(path);
// → File locked indefinitely
// RIGHT: Always release
try {
  await reserveFile({ path });
  await doWork(path);
} finally {
  await releaseReservation({ reservationId });
}

Best Practices

Communication

  1. ✅ Check agent status before sending urgent messages
  2. ✅ Use appropriate priorities - don't overuse "urgent"
  3. ✅ Provide context - include file paths, PRs, rationale
  4. ✅ Keep threads focused - one topic per thread
  5. ✅ Archive resolved threads - maintain clean history

File Reservations

  1. ✅ Check before reserving - verify file is available
  2. ✅ Reserve minimally - only lock what you'll modify
  3. ✅ Set expiry times - prevent indefinite locks
  4. ✅ Release promptly - free files immediately after work
  5. ✅ Use shared mode for read-only access

Coordination

  1. ✅ Announce intent before starting major work
  2. ✅ Update progress on long-running tasks
  3. ✅ Handoff clearly when transferring work
  4. ✅ Document decisions in message threads
  5. ✅ Acknowledge receipts to confirm understanding

Quick Command Reference

# Agent registration
agent-mail agents register --id <id> --role <role>
agent-mail agents status --id <id>
agent-mail agents list --role <role> --status active

# Messaging
agent-mail send --to <agent-id> --subject "..." --body "..."
agent-mail broadcast --subject "..." --priority urgent
agent-mail threads list --status active
agent-mail messages read --thread <id>

# Reservations
agent-mail reserve <path> --purpose edit --mode exclusive
agent-mail check <path>
agent-mail release <reservation-id>
agent-mail reservations list --agent <id>

# Product Bus
agent-mail events emit --product <id> --event deployment
agent-mail events subscribe --product <id> --events build_failure

Troubleshooting

Problem: Message not received

Check:

// 1. Recipient's contact policy
const agent = await tools.agent_mail.getAgent({ id: recipientId });
console.log(agent.contactPolicy);

// 2. Recipient's status
console.log(agent.status); // offline?

// 3. Priority filters
// Some agents filter out low-priority messages

// 4. Server connectivity
await tools.agent_mail.ping();

Problem: Reservation conflict

Resolution:

// 1. Check existing reservation
const reservation = await tools.agent_mail.checkReservation({ path });

// 2. Contact owner
await tools.agent_mail.sendMessage({
  to: reservation.agentId,
  subject: "Request access to file",
  body: { text: "Can we coordinate?" }
});

// 3. Or escalate to coordinator
await tools.agent_mail.sendMessage({
  to: "coordinator",
  priority: "high",
  subject: "Reservation conflict",
  body: { text: "Need resolution for file access." }
});

Problem: Stale reservations

Prevention:

// Always set expiry times
await tools.agent_mail.reserveFile({
  path,
  expiresIn: 3600, // 1 hour
  // Auto-releases if agent crashes or forgets
});

// Cleanup orphaned reservations
await tools.agent_mail.auditReservations({
  status: "stale"
});

Configuration

Server Setup

# Start Agent Mail server
agent-mail server start --port 9743

# Check server status
agent-mail server status
agent-mail server health

Client Configuration

// In MCP config
{
  "mcpServers": {
    "agent-mail": {
      "command": "agent-mail",
      "args": ["serve"],
      "env": {
        "AGENT_MAIL_DB_PATH": "~/.agent-mail/data.db",
        "AGENT_MAIL_ARCHIVE_PATH": "~/.agent-mail/archive/"
      }
    }
  }
}

Related Resources

Documentation

Quick References

Scripts


Success Metrics

Track these to measure coordination effectiveness:

  • Response Time - How quickly agents acknowledge messages
  • Conflict Rate - How often reservation conflicts occur
  • Reservation Duration - Average file lock time
  • Thread Resolution Time - How long discussions take
  • Message Read Rate - % of messages acknowledged

Healthy System:

  • Response time: < 5 minutes (urgent), < 1 hour (high)
  • Conflict rate: < 5% of reservation attempts
  • Reservation duration: < 30 minutes average
  • Thread resolution: < 24 hours
  • Read rate: > 95% within 1 hour

Summary

Use mcp_agent_mail when:

  • Multiple agents on same codebase
  • Risk of file editing conflicts
  • Task dependencies between agents
  • Cross-repository coordination needed

Key operations:

  • registerAgent() - Establish identity
  • sendMessage() - Communicate intent
  • reserveFile() - Lock before editing
  • releaseReservation() - Unlock after work

Remember: Explicit coordination prevents implicit chaos. When in doubt, communicate!

平台分布

OpenCode

25.5%
按下载量换算40

Claude Code

21.19%
按下载量换算33

Codex

18.6%
按下载量换算29

kilo

12.96%
按下载量换算20

windsurf

8.4%
按下载量换算13

kiro-cli

3.42%
按下载量换算5

安全审计

暂无安全审计结果可展示。

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills