深入理解 MCP (Model Context Protocol)、AI Agent 和 Skills,掌握构建智能应用的关键技术
MCP (Model Context Protocol) 是一个开源标准,用于连接 AI 应用与外部系统。就像 USB-C 为电子设备提供标准化连接方式一样,MCP 为 AI 应用提供了连接外部系统的标准化方式。
连接本地文件、数据库、云存储等数据源,让 AI 能够访问和处理你的数据
集成搜索引擎、计算器、代码执行器等工具,扩展 AI 的能力边界
定义专门的提示词和工作流,让 AI 按照特定流程完成复杂任务
{
"mcpServers": {
"pixabay": {
"command": "uvx",
"args": ["https://github.com/helloHupc/pixabay_mcp.git"],
"env": {
"PIXABAY_API_KEY": "your-api-key-here"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/data"]
}
}
}
AI Agent 是能够自主感知环境、做出决策并执行行动的智能系统。它不仅能理解和生成文本,还能调用工具、访问数据、与外部系统交互来完成复杂任务。
接收用户输入、读取文件、获取 API 数据,理解当前环境和任务需求
分析问题、制定计划、选择合适的工具和策略来解决问题
执行代码、调用 API、操作文件系统,将决策转化为实际结果
Skills 是包含指令、脚本和资源的文件夹,AI 动态加载这些内容来提升特定任务的表现。Skills 教会 AI 如何以可重复的方式完成特定任务。
创建 PDF、Word、PPT、Excel 等格式的专业文档
生成艺术作品、音乐、UI 设计等创意内容
代码生成、测试、MCP Server 开发等技术任务
这个 MCP Server 让 AI 助手能够在 Pixabay 上搜索图片和视频。
查看 GitHub 源码from mcp.server import Server
from mcp.types import Tool, TextContent
import httpx
server = Server("pixabay-mcp")
@server.list_tools()
async def list_tools():
return [
Tool(
name="search_images",
description="在 Pixabay 搜索图片",
inputSchema={
"type": "object",
"properties": {
"query": {"type": "string", "description": "搜索关键词"},
"image_type": {"type": "string", "enum": ["photo", "illustration", "vector"]}
},
"required": ["query"]
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "search_images":
api_key = os.environ.get("PIXABAY_API_KEY")
query = arguments.get("query")
image_type = arguments.get("image_type", "photo")
async with httpx.AsyncClient() as client:
response = await client.get(
"https://pixabay.com/api/",
params={"key": api_key, "q": query, "image_type": image_type}
)
data = response.json()
results = [f"- {hit['tags']}: {hit['webformatURL']}" for hit in data.get("hits", [])[:5]]
return [TextContent(type="text", text="\n".join(results))]
if __name__ == "__main__":
server.run()
一个能够分析需求并生成系统架构方案的 AI Agent。
查看 GitHub 源码from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from langchain.tools import tool
@tool
def analyze_requirements(requirements: str) -> str:
"""分析系统需求,提取关键功能点"""
return f"已分析需求: {requirements[:100]}..."
@tool
def design_architecture(components: list) -> str:
"""根据组件列表设计系统架构"""
return str({
"frontend": "React + TypeScript",
"backend": "Python FastAPI",
"database": "PostgreSQL + Redis",
"deployment": "Kubernetes"
})
@tool
def generate_diagram(architecture: str) -> str:
"""生成架构图的 Mermaid 代码"""
return """
graph TB
Client[客户端] --> LB[负载均衡]
LB --> API[API 网关]
API --> BizService[业务服务]
BizService --> DB[(数据库)]
"""
llm = ChatOpenAI(model="gpt-4", temperature=0)
tools = [analyze_requirements, design_architecture, generate_diagram]
agent = create_openai_tools_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({
"input": "设计一个电商平台的后端架构"
})
教会 Claude 如何生成专业的数据分析报告。
查看 GitHub 源码--- name: data-analysis-report description: 生成专业的数据分析报告 --- # 数据分析报告技能 ## 执行流程 1. **数据理解** - 检查数据结构、识别缺失值和异常值 2. **探索性分析** - 计算统计量、分析分布和相关性 3. **可视化生成** - 趋势图、柱状图、散点图、饼图 4. **洞察提炼** - 总结发现、提出建议、标注风险 ## 输出格式 ```markdown # 数据分析报告 ## 执行摘要 [核心发现总结] ## 数据概览 | 指标 | 数值 | |------|------| | 记录数 | xxx | ## 关键发现 1. [发现1] 2. [发现2] ## 建议 - [建议1] - [建议2] ```