关于 onboard-context-matic
onboard-context-matic 是用于 context-matic MCP 服务的交互式引导技能,带领 Agent 探索 API,并查询版本准确的集成说明、模型、端点和代码示例。
主要功能
- 01交互式服务引导流程
- 02根据项目文件识别语言
- 03发现可用 API
- 04查询 SDK 模型及属性
- 05查找端点签名与示例
适用场景
- 01探索项目语言可用的 API
- 02检查模型字段的必填与可选状态
- 03查找端点参数和响应类型
- 04获取特定版本的集成示例
MCP 相关
该技能引导 Agent 使用 context-matic MCP 服务的 fetch_api、ask、model_search 和 endpoint_search 工具,获取 API 列表、版本准确的集成指导、模型定义、端点详情及可运行代码示例。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill onboard-context-matic安装后在 Claude Code 中输入/onboard-context-matic确认已加载。
详细介绍
入门指南:ContextMatic MCP
本技能将带领你以交互方式浏览 context-matic MCP 服务。请按顺序完成每个阶段。在每个交互点之后停下,等待用户回复后再继续。
Agent 行为准则——在整个技能过程中始终遵守:
- 切勿叙述技能结构。 不要说阶段名称、步骤编号,或任何听起来像在朗读指令的内容(例如,"在第 1 阶段我将……"、"步骤 1a:"、"根据本技能……")。请将导览呈现为自然的对话。
- 在每次调用工具前先说明。 一句话即可——告诉用户你即将查找什么以及为什么,然后调用工具。例如:"让我先调出你项目语言可用的 API 列表。" 这样可以让用户始终知情,避免出现无声、无解释的停顿。
阶段 0 — 开场说明与工具导览
先用简洁、通俗的语言解释该服务的作用。根据以下事实用自己的话表述:
context-matic MCP 服务解决了 AI 辅助编码的一个根本问题:通用模型是在公开代码上训练的,而这些代码往往过时、有误,或完全缺少较新的 SDK 版本。该服务充当一个实时的、版本感知的 grounding 层。Agent 不再根据训练数据猜测 SDK 用法,而是向该服务查询与当前 API 版本及项目编程语言相匹配的确切 SDK 模型、端点、鉴权模式和可运行代码示例。
在解释完该服务所解决的问题后,逐一介绍这四个工具,就像向第一次使用该服务的人介绍一样。对每个工具,说明:
- 它是什么——给出一句便于记忆的描述
- 何时使用它——一个具体、贴近实际的场景
- 它返回什么——用户将看到的输出类型
以以下事实为来源,但请用对话式的方式表述——不要直接呈现原始表格:
工具 功能 何时使用 返回内容 fetch_api根据 API 的 key/标识符和语言返回精确匹配项,或列出某一语言下的所有 API。key是fetch_api返回的机器可读标识符(例如paypal),而不是人类可读的显示名称(例如 "PayPal Server SDK")。"我可以使用哪些 API?" / 启动新项目 / "你们有 PayPal SDK 吗?" 一份带名称和简短描述的可用 API 列表(完整目录),或在提供标识符/key 和语言时返回一个精确的 API 匹配项 ask以版本准确的指导及代码示例回答集成问题 "我该如何鉴权?"、"给我看看快速入门"、"做 X 的正确方式是什么?" 基于实际 SDK 版本的分步指导和可运行代码示例 model_search查询 SDK 模型/对象定义及其类型化属性 "Order 有哪些字段?"、"这个属性是必填的吗?" 模型的名称、描述,以及完整的类型化属性列表(必填与可选、嵌套类型) endpoint_search查询端点方法、其参数、响应类型,以及可运行的代码示例 "给我看看如何调用 createOrder"、"getTrack 返回什么?" 方法签名、参数类型、响应类型,以及可直接复制粘贴的代码示例
在本节结尾告诉用户,你将在导览过程中现场演示这四个核心的发现与集成工具,并立即从 fetch_api 开始。明确说明本次导览聚焦于这些核心的 ContextMatic 服务工具,而不是更广泛工作流中可能用到的所有辅助工具。
阶段 1 — 展示可用 API
1a. 检测项目语言
在调用 fetch_api 之前,通过检查工作区文件来确定项目的主要语言:
- 查找
package.json和.ts/.tsx文件 →typescript - 查找
*.csproj或*.sln→csharp - 查找
requirements.txt、pyproject.toml或*.py→python - 查找
pom.xml或build.gradle→java - 查找
go.mod→go - 查找
Gemfile或*.rb→ruby - 查找
composer.json或*.php→php - 如果未找到任何项目文件,则静默回退到
typescript。
保存检测到的语言 —— 你需要将它传递给之后每一次工具调用。
1b. 获取可用的 API
告诉用户你检测到了哪种语言,并且你正在获取可用的 API —— 例如:“我可以看到这是一个 TypeScript 项目。让我获取可用于 TypeScript 的 API。”
调用 fetch_api,其中 language = 检测到的语言,key = "",这样该工具会返回可用的 API 完整列表。
将结果显示为格式化列表,展示每个 API 的 name 以及对其 description 的一句话摘要。不要截断或跳过任何条目。
示例显示格式(根据实际结果调整):
Here are the APIs currently available through this server:
1. PayPal Server SDK — Payments, orders, subscriptions, and vault via PayPal REST APIs.
2. Spotify Web API — Music/podcast discovery, playback control, and library management.
....
阶段 2 —— API 选择(交互)
询问用户:
“你想探索这些 API 中的哪一个?只需说出名称或编号即可。”
在继续之前等待用户的回复。
保存 fetch_api 响应中所选 API 的 key 值 —— 你需要将它传递给之后每一次工具调用。同时记下该 API 的名称,以便在说明性文本中使用。
阶段 3 —— 解释所选 API
在调用之前,说类似这样的话:“好选择 —— 让我为你获取 [API 名称] 的概览。”
调用 ask,参数如下:
key= 所选 API 的 keylanguage= 检测到的语言query="Give me a high-level overview of this API: what it does, what the main controllers or modules are, how authentication works, and what the first step to start using it is."
以对话方式呈现响应。重点说明:
- 该 API 能做什么(使用场景)
- 认证如何工作(凭据、OAuth 流程等)
- 主要的 SDK 控制器或命名空间
- 要安装的 NPM/pip/NuGet/等包名
阶段 4 —— 使用项目语言进行集成(交互)
询问用户:
“[API 名称] 中是否有你想学习如何使用某个特定部分 —— 例如, 创建订单、搜索轨迹或管理订阅?还是让我向你展示 完整的集成快速入门?”
等待用户的回复。
在调用之前,说类似这样的话:“好的 —— 让我查一下。” 或 “当然,让我调出快速入门。”
调用 ask,参数如下:
key= 所选 API 的 keylanguage= 检测到的语言query= 用户陈述的目标,或者如果他们要求完整指南,则为"Show me a complete integration quickstart: install the SDK, configure credentials, and make the first API call."
呈现响应,包括按原样返回的任何代码示例。
阶段 5 — 演示 model_search
告诉用户:
"现在让我展示一下
model_search是如何工作的。这个工具让你可以查找任意 SDK 模型或 对象定义——它带类型的属性、哪些是必填哪些是选填,以及它们使用什么类型。 它支持部分名称匹配,且区分大小写。"
在调用之前,说类似这样的话:"让我搜索一下 [model name] 模型,这样你就能看到结果长什么样了。"
从所选 API 中挑一个有代表性的模型(示例如下),并用以下参数调用 model_search:
key= 之前选定的 API key(例如paypal或spotify)language= 检测到的项目语言query= 你挑选的有代表性的模型名称
| API key | 合适的演示查询 |
|---|---|
paypal | Order |
spotify | TrackObject |
展示结果,并指出:
- 确切的模型名称及其描述
- 几个有意思的带类型属性(突出显示选填与必填)
- 任何嵌套的模型引用(例如
PurchaseUnit[] | undefined)
告诉用户:
"你可以按名称搜索任意模型——部分匹配也可以。当你需要了解 [API name] 中某个 特定模型的结构时,随时让我帮你查找。"
阶段 6 — 演示 endpoint_search
告诉用户:
"类似地,
endpoint_search可以查找任意 SDK 方法——确切的参数、它们的类型、 响应类型,以及一段可直接放入你项目的、完全可运行的代码示例。"
在调用之前,说类似这样的话:"让我获取一下 [endpoint name] 端点,这样你就能看到参数和一段实时代码示例了。"
为所选 API 挑一个有代表性的端点,并用显式的参数对象调用 endpoint_search:
key= 你正在演示的 API key(例如paypal或spotify)query= 你想查找的端点 / SDK 方法名(例如createOrder或getTrack)language= 用户的项目语言(例如"typescript"或"python")
例如:
API key(key) | 端点名称(query) | 示例 language |
|---|---|---|
paypal | createOrder | 用户的项目语言 |
spotify | getTrack | 用户的项目语言 |
| 展示结果,并指出: |
- 方法名称及描述
- 请求参数及其类型
- 响应类型
- 完整的代码示例(按原样呈现)
告诉用户:
"注意,这段代码示例是开箱即用的——它从正确的 SDK 导入、初始化 客户端、调用端点,并处理错误。你可以按方法名或区分大小写的部分片段 搜索任意端点。"
阶段 7 — 收尾:你可以问些什么
以一份总结清单结束本次导览,列出用户现在可以让 Agent 做的事情。以 格式化菜单的形式呈现:
你可以用这个 MCP 做什么
快速上手:你的第一次 API 调用
/integrate-context-matic Set up the Spotify TypeScript SDK and fetch my top 5 tracks.
Show me the complete client initialization and the API call.
/integrate-context-matic How do I authenticate with the Twilio API and send an SMS?
Give me the full PHP setup including the SDK client and the send call.
/integrate-context-matic Walk me through initializing the Slack API client in a Python script and posting a message to a channel.
框架特定的集成
/integrate-context-matic I'm building a Next.js app. Integrate the Google Maps Places API
to search for nearby restaurants and display them on a page. Use the TypeScript SDK.
/integrate-context-matic I'm using Laravel. Show me how to send a Twilio SMS when a user
registers. Include the PHP SDK setup, client initialization, and the controller code.
/integrate-context-matic I have an ASP.NET Core app. Add Twilio webhook handling so I can receive delivery status callbacks when an SMS is sent.
串联工具以实现完整集成
/integrate-context-matic I want to add real-time order shipping notifications to my
Next.js store. Use Twilio to send an SMS when the order status changes to "shipped". Show me
the full integration: SDK setup, the correct endpoint and its parameters, and the TypeScript code.
/integrate-context-matic I need to post a Slack message every time a Spotify track changes
in my playlist monitoring app. Walk me through integrating both APIs in TypeScript — start by
discovering what's available, then show me the auth setup and the exact API calls.
/integrate-context-matic In my ASP.NET Core app, I want to geocode user addresses using
Google Maps and cache the results. Look up the geocode endpoint and response model, then
generate the C# code including error handling.
调试与错误处理
/integrate-context-matic My Spotify API call is returning 401. What OAuth flow should I
be using and how does the TypeScript SDK handle token refresh automatically?
/integrate-context-matic My Slack message posts are failing intermittently with rate limit
errors. How does the Python SDK expose rate limit information and what's the recommended retry
pattern?
"本次导览到此结束!你可以问我上面任意一项,或者直接告诉我你想构建什么—— 我会用这个服务为你提供准确的、针对特定版本的指导。"
给 Agent 的说明
- 如果用户选择的 API 不在
fetch_api的结果中,告诉他们该 API 目前不可用, 并提议用以可用的 API 继续导览。 - 本技能中的所有工具调用都是只读的——它们不会修改项目、安装包, 或写入文件,除非用户明确要求你继续进行集成。
- 当展示来自
endpoint_search或ask的代码示例时,请用带正确语言标签的 围栏代码块呈现。