把Codex技能变MCP服务,分享你的专属工具!

大家好!我是King。今天跟大伙聊聊Codex Skills的一个新玩法,保证你看完就能上手。
先搞明白:Codex Skills 是啥?
简单说,Codex Skills 就是你用自然语言教AI学会的一系列操作流程。比如你经常要处理周报数据,写一段描述让AI记住步骤,以后说句话它就帮你搞定。
但问题是——这技能只能你自己用。朋友问你要?复制粘贴代码?太麻烦。
MCP 是什么?能干啥?
MCP全称是Model Context Protocol,一种让AI工具之间互相调用的标准协议。把它当成一个“万能插头”,你的技能变成可被其他AI调用的服务。
部署成MCP后:
队友用Cursor、Windsurf直接调用你的技能
不用重复造轮子,一人写好,全员使用
技能可以迭代更新,所有调用方自动同步
三步把技能变成MCP服务
第一步:整理你的Codex Skill  https://www.kfzhan.com/kfxx/344.html  https://www.kfzhan.com/kfxx/343.html   
把技能写成一个清晰的指令文件。举个例子,你有一个“提取文章核心观点”的技能:

你是一个信息提炼助手。给定一篇中文文章,输出三个核心观点,每个观点控制在30字以内,用编号列表呈现。不添加额外解释。

这个描述越具体越好,加上输出格式限制。
第二步:用MCP协议包装

{
  "name": "extract_key_points",
  "description": "从文章中提取三个核心观点",
  "input_schema": {
    "type": "object",
    "properties": {
      "article_text": {
        "type": "string",
        "description": "需要分析的原文内容"
      }
    },
    "required": ["article_text"]
  },
  "prompt_template": "你是一个信息提炼助手。给定以下文章内容,输出三个核心观点,每个观点控制在30字以内,用编号列表呈现。不添加额外解释。\n\n文章内容:{{article_text}}"
}

第三步:部署并生成分享链接  https://www.kfzhan.com/kfxx/345.html  https://www.kfzhan.com/kfxx/346.html
用现成的MCP服务工具(比如mcp.run或自建端点),上传上面的配置文件,得到一个调用地址:

https://your-mcp-server.com/skills/extract_key_points

把这个链接发给朋友,他们在AI工具里配置好就能用。
代码框1:一个完整的MCP服务端示例(Node.js)

const express = require('express');
const app = express();
app.use(express.json());

const skills = {
  'extract_key_points': {
    prompt: '你是一个信息提炼助手。给定以下文章内容,输出三个核心观点...',
    handler: async (input) => {
      // 调用AI接口的逻辑
      return { result: '提取完成' };
    }
  }
};

app.post('/mcp/call', async (req, res) => {
  const { skill_name, parameters } = req.body;
  const skill = skills[skill_name];
  if (!skill) return res.status(404).json({ error: '技能未找到' });
  const output = await skill.handler(parameters);
  res.json(output);
});

app.listen(3000, () => console.log('MCP服务已启动'));

代码框2:Python快速版使用FastAPI  https://www.kfzhan.com/kfxx/347.html  https://www.71wa.com/quanwei/59.html  

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import openai

app = FastAPI()

class SkillRequest(BaseModel):
    article_text: str

@app.post("/skills/extract_key_points")
async def extract_points(request: SkillRequest):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": f"提取核心观点:{request.article_text}"}]
    )
    return {"points": response.choices[0].message.content}

分享的两种方式
方式一:私有分享(给团队或好友)  https://www.71wa.com/news/58.html   
部署在内网或带鉴权的云服务   https://www.71wa.com/zhiyebaike/60.html 
生成一次性的调用令牌
方式二:公开分享(给所有玩家)https://www.71wa.com/huodong/61.html  
部署在公共MCP市场
附上使用说明和示例
代码框3:前端调用示例(JavaScript)  https://www.71wa.com/koubei/62.html  

async function callMySkill(article) {
  const response = await fetch('https://your-mcp-server.com/skills/extract_key_points', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ article_text: article })
  });
  const data = await response.json();
  console.log('技能输出:', data.points);
  return data;
}

代码框4:curl测试命令

curl -X POST https://your-mcp-server.com/skills/extract_key_points \
  -H "Content-Type: application/json" \
  -d '{"article_text":"人工智能正在改变软件开发的每个环节..."}'

代码框5:MCP配置文件(mcp.json)

{
  "mcp_version": "1.0",
  "skills": [
    {
      "id": "skill_001",
      "name": "周报生成器",
      "endpoint": "/skills/weekly_report",
      "auth_type": "none"
    }
  ]
}

两个新手常见问题和解答  https://www.71wa.com/hegui/63.html  https://www.71wa.com/medias/64.html  
问题1:部署MCP服务需要买服务器吗?
不需要。你可以用免费的云函数服务,比如Vercel的Serverless Functions、Cloudflare Workers,或者直接用GitHub Actions配合Webhook。甚至本地跑一个ngrok隧道也能临时分享给朋友测试。起步阶段零成本。
问题2:别人调用我的技能,会不会把我的API额度耗尽?
会的。你需要自己控制调用频率。解决方法有两个:一是在MCP服务端加上每日调用上限,用Redis或内存计数器实现;二是要求调用方自带API密钥,你的服务只做“调度+提示词模板”的传递。推荐第二种,各用各的额度,你没有任何开销。
代码框6:带限流保护的中间件

from collections import defaultdict
from datetime import datetime, timedelta

rate_limit = defaultdict(list)

def check_rate_limit(user_id: str, max_calls=100):
    now = datetime.now()
    # 清理1分钟前的记录
    rate_limit[user_id] = [t for t in rate_limit[user_id] if now - t < timedelta(minutes=1)]
    if len(rate_limit[user_id]) >= max_calls:
        return False
    rate_limit[user_id].append(now)
    return True

让你的技能更容易被搜索和发现   https://www.71wa.com/lizhiyulu/66.html  https://www.kfzhan.com/dt/348.html   
给技能起一个描述性的名字,比如“小红书文案改写器”而不是“技能3号”。在MCP服务里添加标签和示例输入输出。如果放在公开目录,写一段清晰的中文介绍,包含关键词:自动化、提效、AI工作流。  
代码框7:带元数据的技能描述

{
  "skill": {
    "display_name": "小红书风格文案转换",
    "tags": ["内容创作", "社交媒体", "文案"],
    "examples": [
      {"input": "这款面膜补水效果很好", "output": "姐妹们!这款面膜真的太水润了✨"}
    ]
  }
}

代码框8:完整的前端小部件(复制即用)

<div id="mcp-caller">
  <textarea id="input-text" placeholder="粘贴文章内容" rows="5"></textarea>
  <button onclick="callSkill()">调用我的专属技能</button>
  <div id="output"></div>
</div>
<script>
async function callSkill() {
  const text = document.getElementById('input-text').value;
  const res = await fetch('/api/mcp/extract_points', {
    method: 'POST',
    body: JSON.stringify({ text })
  });
  const data = await res.json();
  document.getElementById('output').innerHTML = `<pre>${data.result}</pre>`;
}
</script>

总结:从“自己用”到“大家用”  https://www.kfzhan.com/dt/349.html  https://www.kfzhan.com/dt/350.html  
把Codex Skills变成MCP服务,本质上就是把你的经验封装成别人一键可调用的工具。不用写复杂的SDK,不用教对方怎么配置环境,发一个链接就好。
我King自己就在用这套方法,把二十多个常用技能部署成了MCP,团队效率翻了一倍。你整理好自己的技能,按照上面的步骤操作,半小时内就能完成第一个分享。
最后送你一句话:技能只有传出去才有价值,藏在本地的代码什么都不是。

更多经验分享链接:

Vxe Gantt 高级技巧:动态调整任务顺序! - 九世師 - 博客园

Web Storage避坑:localStorage.getItem常见错误与正确用法! - 九世師 - 博客园

关网页也不丢数据!sendBeacon埋点可靠方案! - 九世師 - 博客园

字符串数字互转,别再只会用 atoi 了! - 九世師 - 博客园

JS异步四兄弟成长记:9个关键升级让你少写回调! - 九世師 - 博客园

异步编程完全指南:从 Promise 到 await 与 Async 迭代器的 8 个演进知识点。 - 九世師 - 博客园

JavaScript 高级特性完全指南:从 ES6 到 ES2025 的 10 个核心知识点! - 九世師 - 博客园

仅用一个配置,Webpack 打包速度暴涨 1000%! - 九世師 - 博客园

posted @ 2026-05-26 19:08  九世師  阅读(7)  评论(0)    收藏  举报