MCP 助手
- 作者仓库星标 39
- 作者更新于 实时读取
- 作者仓库 awesome-omni-skill
- 领域
- AI 智能
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 88 / 100 · 社区维护
- 作者 / 版本 / 许可
- @diegosouzapw · 未声明 license
- Token 消耗评级
- 较高消耗
- 接入复杂程度
- 需手动接入
- 是否需要外部 API Key
- 需要 · GitHub
- 兼容的系统
- macOS · Linux · Windows
- 底层运行要求
- Node.js · Python
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 网络行为
- 允许外网请求
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: mess-mcp
description: MCP server tools for creating and managing MESS physical-world task requests. Provides mess, mes…
category: AI 智能
runtime: Node.js / Python
---
# mess-mcp 输出预览
## PART A: 任务判断
- 适用问题:提示词、Agent 工作流、模型评估或自动化推理。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“Overview / Tools / mess - Send MESS Protocol Messages”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于提示词、Agent 工作流、模型评估或自动化推理,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“Overview / Tools / mess - Send MESS Protocol Messages”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、执行终端命令、会按任务需要访问外部网络、需要准备 GitHub API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、执行终端命令;会按任务需要访问外部网络;需要准备 GitHub API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文没有稳定的斜杠命令要求。安装验证后通常全局生效,直接在对话里点名这个 Skill 并描述任务即可。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、执行终端命令。
先用一个小任务确认它会围绕“Overview / Tools / mess - Send MESS Protocol Messages”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: mess-mcp
description: MCP server tools for creating and managing MESS physical-world task requests. Provides mess, mes…
category: AI 智能
source: diegosouzapw/awesome-omni-skill
---
# mess-mcp
## 什么时候使用
- 把 AI / Agent方向的常用动作沉淀成 Agent 可调用的技能 适合处理AI Agent、提示词、模型评估与自动化推理,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查…
- 面向提示词、Agent 工作流、模型评估或自动化推理,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「Overview / Tools / mess - Send MESS Protocol Messages」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、执行终端命令;会按任务需要访问外部网络;需要准备 GitHub API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "mess-mcp" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> Overview / Tools / mess - Send MESS Protocol Messages
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Node.js / Python | 读取文件、写入/修改文件、执行终端命令 | 会按任务需要访问外部网络
安全层 -> 需要准备 GitHub API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} MESS MCP Server
Overview
The MESS MCP Server provides Claude Desktop with tools to create and manage physical-world task requests. It syncs with GitHub (or local files) to store request threads.
Tools
mess - Send MESS Protocol Messages
Create new requests or update existing ones using free-form YAML.
Input: YAML-formatted MESS message
Why YAML? The mess tool accepts raw MESS protocol messages, allowing you to:
- Include any valid MESS protocol fields, not just common ones
- Add custom context, metadata, or instructions
- Construct complex multi-part messages
- Use the full expressiveness of the MESS protocol
The examples below show common patterns, but you can include any fields defined in the MESS protocol specification.
Creating a Request
- v: 1.0.0
- request:
intent: Check if the garage door is closed
context:
- Getting ready for bed
- Want to make sure house is secure
priority: normal
response_hint:
- image
- text
Response:
ref: "2026-02-01-001"
status: pending
message: "Request created: 2026-02-01-001"
Updating a Request
Send a status update:
- status:
re: "2026-02-01-001"
code: claimed
Cancel a request:
- cancel:
re: "2026-02-01-001"
reason: "No longer needed"
mess_status - Check Request Status
Query pending requests or get details on a specific thread.
List All Active Requests
ref: null
Response:
- ref: "2026-02-01-001"
status: pending
intent: Check if the garage door is closed
requestor: claude-desktop
executor: null
priority: normal
created: "2026-02-01T22:00:00Z"
hasUpdates: true # changed since last mess_status call
- ref: "2026-02-01-002"
status: claimed
intent: What's in the fridge?
requestor: claude-desktop
executor: teague-phone
priority: normal
hasUpdates: false # no changes since last check
Note: The hasUpdates flag indicates whether the thread changed since your last mess_status call. New threads always have hasUpdates: true. Use mess_wait instead of polling if you want to wait for changes efficiently.
Get Specific Thread
ref: "2026-02-01-001"
Response (v2.1.0 format):
ref: "2026-02-01-001-garage-check"
status: completed
intent: Check if the garage door is closed
requestor: claude-desktop
executor: teague-phone
messages:
- from: claude-desktop
received: "2026-02-01T22:00:00Z"
MESS:
- v: "1.0.0"
- request:
id: garage-check
intent: Check if the garage door is closed
- from: teague-phone
received: "2026-02-01T22:05:00Z"
re: "2026-02-01-001-garage-check" # message-level reference
MESS:
- status:
code: completed
- response:
content:
- image:
resource: "content://2026-02-01-001-garage-check/att-002-image-door.jpg"
mime: "image/jpeg"
size: 245891
- "All clear - garage door is closed and locked"
attachments:
- name: att-002-image-door.jpg
resource: "content://2026-02-01-001-garage-check/att-002-image-door.jpg"
Note: Images are returned as content:// resource URIs instead of inline base64 to keep responses lightweight. Use mess_fetch to fetch attachment content when needed.
Configuration
GitHub Mode (Recommended)
{
"mcpServers": {
"mess": {
"command": "node",
"args": ["/path/to/mcp/index.js"],
"env": {
"MESS_GITHUB_REPO": "username/mess-exchange",
"MESS_GITHUB_TOKEN": "github_pat_xxxxx",
"MESS_GITHUB_ONLY": "true",
"MESS_AGENT_ID": "claude-desktop"
}
}
}
}
Local Mode
{
"mcpServers": {
"mess": {
"command": "node",
"args": ["/path/to/mcp/index.js"],
"env": {
"MESS_DIR": "~/.mess",
"MESS_AGENT_ID": "claude-desktop"
}
}
}
}
Hybrid Mode (Local + GitHub Sync)
{
"mcpServers": {
"mess": {
"command": "node",
"args": ["/path/to/mcp/index.js"],
"env": {
"MESS_DIR": "~/.mess",
"MESS_GITHUB_REPO": "username/mess-exchange",
"MESS_GITHUB_TOKEN": "github_pat_xxxxx",
"MESS_AGENT_ID": "claude-desktop"
}
}
}
}
mess_capabilities - Discover Available Capabilities
List physical-world capabilities that executors in this exchange can perform.
Input: Optional tag filter
List All Capabilities
# No input needed
Response:
- id: camera
description: Take and attach photos
tags: [attachments]
- id: check-door
description: Check if doors are locked or closed
tags: [security, physical-access]
- id: hands
description: Has human hands for physical manipulation
tags: [physical-access]
Filter by Tag
tag: security
Response:
- id: check-door
description: Check if doors are locked or closed
tags: [security, physical-access]
- id: check-stove
description: Verify stove/oven is turned off
tags: [security, safety]
Use this to understand what kinds of tasks you can request. Capabilities are defined in capabilities/*.yaml in the exchange.
mess_request - Create Request (Simple)
A simpler alternative to the raw mess tool for creating requests.
Input:
intent: "Check if the garage door is closed"
context:
- "Getting ready for bed"
priority: elevated
response_hints:
- image
Response:
ref: "2026-02-01-001"
status: pending
message: "Request created"
mess_answer - Answer Question
Respond to an executor's question when status is needs_input.
Input:
ref: "2026-02-01-001"
answer: "The living room ceiling light, not the lamp"
mess_cancel - Cancel Request
Cancel a pending or in-progress request.
Input:
ref: "2026-02-01-001"
reason: "No longer needed" # optional
mess_wait - Wait for Changes
Wait for changes to threads instead of polling mess_status repeatedly.
Input:
ref: "2026-02-01-001" # optional: wait for specific thread
timeout: 60 # optional: seconds (default: 60, max: 43200 / 12 hours)
Response:
updated:
- ref: "2026-02-01-001"
status: claimed
hasUpdates: true
waited: 5
timedOut: false
Adaptive polling: Poll frequency scales with timeout (~30 polls total):
- 60s timeout → polls every 2s
- 5 min → every 10s
- 1 hour → every 2 min
- 12 hours → every 24 min
When to use:
- After creating a request, call
mess_waitto be notified when claimed/completed - Returns immediately if thread changed since wait started
- Use for efficient long-running waits instead of polling
Example workflow:
# 1. Create a request
mess_request:
intent: "Check if the garage door is closed"
# 2. Wait for it to be completed (up to 1 hour)
mess_wait:
ref: "2026-02-01-001"
timeout: 3600
# 3. Response returns when status changes or timeout
mess_fetch - Fetch Resource Content
This is how you retrieve images and attachments. When mess_status returns content:// URIs, use this tool to fetch the actual content.
Input:
uri: "content://2026-02-01-001/photo.jpg"
Supported URI schemes:
content://{ref}/{filename}- Attachments (images, files)thread://{ref}- Full thread data (envelope + messages)thread://{ref}/envelope- Thread metadata onlythread://{ref}/latest- Most recent messagemess://help- This documentation
Response for images:
uri: "content://2026-02-01-001/photo.jpg"
mimeType: "image/jpeg"
encoding: "base64"
data: "/9j/4AAQSkZJRg..."
Response for thread data: Returns the thread content as YAML.
Example workflow:
# 1. Check status, see there's an image
mess_status:
ref: "2026-02-01-001"
# Response includes: resource: "content://2026-02-01-001/photo.jpg"
# 2. Fetch the image
mess_fetch:
uri: "content://2026-02-01-001/photo.jpg"
# Response includes base64 image data
Request Fields
| Field | Required | Description |
|---|---|---|
intent |
Yes | What you need done (be specific) |
id |
No | Your local identifier for tracking (exchange assigns canonical ref) |
context |
No | List of relevant context strings |
priority |
No | background, normal, elevated, urgent |
response_hint |
No | Expected response types: text, image, video, audio |
Free-Form Extensions
The MESS protocol is extensible. Beyond the standard fields above, you can include:
- v: 1.0.0
- request:
intent: Check the garden irrigation system
context:
- Haven't watered in 3 days
priority: normal
# Standard fields above, custom fields below:
location: backyard
equipment_needed:
- hose access
- manual valve knowledge
safety_notes:
- Watch for wasps near the shed
deadline: before 6pm today
Custom fields are preserved in the thread and visible to executors. Use them for domain-specific context that doesn't fit the standard fields.
Status Codes
| Status | Meaning |
|---|---|
pending |
Waiting for executor to claim |
claimed |
Executor is working on it |
in_progress |
Executor actively working |
needs_input |
Executor needs clarification |
completed |
Task finished successfully |
failed |
Could not complete |
declined |
Executor declined the request |
cancelled |
Request was cancelled |
Common Patterns
Create and Wait
# 1. Create request
mess:
- v: 1.0.0
- request:
intent: Is anyone home?
# 2. Periodically check status
mess_status:
ref: "2026-02-01-001"
# 3. When completed, read the response
Urgent Request
- v: 1.0.0
- request:
intent: Did I leave the stove on?
context:
- Just left the house
- Can't remember if I turned it off
priority: urgent
response_hint:
- image
- text
Follow-up After needs_input
# Original request got needs_input status
# Executor asked: "Which light?"
# Send clarification (v2.1.0: answer block, message-level re: handled automatically)
- answer:
id: light-clarification
value: "The living room ceiling light, not the lamp"
Resources
The MCP server uses content:// and thread:// URIs for attachments and thread data.
Fetching Attachments
When mess_status returns a thread, images and files are referenced as resource URIs:
image:
resource: "content://2026-02-01-001/att-002-image-door.jpg"
mime: "image/jpeg"
size: 245891
To fetch the actual image, use mess_fetch:
mess_fetch:
uri: "content://2026-02-01-001/att-002-image-door.jpg"
This keeps status responses lightweight and avoids blowing up context with large base64 payloads.
Resource URI Format
content://{thread-ref}/{attachment-filename}
Examples:
content://2026-02-01-001-garage-check/att-002-image-door.jpgcontent://2026-02-01-003-fridge/att-005-image-contents.jpg
Thread Resources
Read thread data with attachments automatically rewritten to content:// URIs:
thread://{ref} # Full thread (envelope + messages)
thread://{ref}/envelope # Just metadata (status, executor, history)
thread://{ref}/latest # Most recent message only
Example - Read full thread:
# Request: thread://2026-02-01-001
# Response:
envelope:
ref: "2026-02-01-001"
status: completed
intent: Check the garage door
messages:
- from: claude-desktop
MESS:
- request:
intent: Check the garage door
- from: teague-phone
MESS:
- response:
content:
- image:
resource: "content://2026-02-01-001/att-001-door.jpg"
- "Door is closed"
Example - Read just envelope:
# Request: thread://2026-02-01-001/envelope
# Response:
ref: "2026-02-01-001"
status: completed
executor: teague-phone
updated: "2026-02-01T22:05:00Z"
Error Handling
Thread not found:
error: "Thread 2026-02-01-999 not found"
Missing required field:
error: "Missing re: field"
GitHub API error:
error: "GitHub API error: 401"
File Locations
macOS
- Config:
~/Library/Application Support/Claude/claude_desktop_config.json - Local MESS dir:
~/.mess/
Linux
- Config:
~/.config/claude/claude_desktop_config.json - Local MESS dir:
~/.mess/
Windows
- Config:
%APPDATA%\Claude\claude_desktop_config.json - Local MESS dir:
%USERPROFILE%\.mess\
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核