CF-MCP-Server
基于 Model Context Protocol (MCP) 的服务集合,包括图像生成和内容提取等功能
Cloudflare Workers边缘计算图像生成
核心功能
标准化服务接口
基于 MCP 协议的标准化服务接口,便于集成到各种应用中
开箱即用
开箱即用的图像生成 Worker 模块,快速部署到 Cloudflare
可扩展性
支持快速扩展自定义工具和资源,满足不同场景需求
边缘计算优化
边缘计算优化部署,提供低延迟、高可用的服务体验
技术细节
模块构成
mcp-image-generation ├── Cloudflare Worker ├── Flux-1-Schnell 模型 └── 图像生成API (4-8 steps)
- • 支持步骤数范围:4-8 steps
- • 响应格式:Base64 编码的 PNG 图像
- • 部署方式:Cloudflare Workers
API 文档
图像生成接口参数
参数 | 类型 | 约束 | 说明 |
---|---|---|---|
prompt | string | 1-500字符 | 英文描述提示词 |
steps | number | 4 ≤ steps ≤ 8 | 生成迭代步数 |
客户端配置
方法一:使用 workers-mcp CLI(推荐)
{ "mcpServers": { "generateImage": { "command": "/path/to/workers-mcp", "args": [ "run", "generateImage", "https://mcp-image-generation.turinhub.com", "/path/to/mcp-image-generation" ], "env": {} } } }
方法二:直接使用 URL(适用于 Claude 等客户端)
{ "mcpServers": { "mcp-image-generation": { "command": "https://mcp-image-generation.turinhub.com", "args": [], "env": {}, "disabled": false, "autoApprove": [] } } }
使用示例
// 客户端代码示例 import { MCPClient } from 'workers-mcp' // 创建 MCP 客户端 const client = new MCPClient('https://mcp-image-generation.turinhub.com') // 调用 generateImage 方法 async function generateAndSaveImage(prompt: string, steps: number = 8) { try { const imageResponse = await client.call('generateImage', prompt, steps) // 处理返回的图像 if (imageResponse.ok) { const imageBlob = await imageResponse.blob() // 这里可以保存图像或在页面上显示 console.log('图像生成成功!') return imageBlob } else { console.error('生成图像失败:', await imageResponse.text()) } } catch (error) { console.error('调用 MCP 服务出错:', error) } } // 使用示例 generateAndSaveImage('A cute cat playing under the sunshine.', 8)
内容提取语义搜索Jina AI
Jina API 服务
基于 Jina AI 的内容提取和语义搜索服务,支持从网页提取结构化内容和进行语义搜索
内容提取(reader)
从指定 URL 提取结构化内容,包括标题、正文、关键信息等
接口参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
url | string | 是 | 需要提取内容的网页 URL |
token | string | 否 | 用于认证的 Bearer token |
noCache | boolean | 否 | 是否绕过缓存(默认 false) |
语义搜索(search)
调用 Jina Search API 进行语义搜索,返回相关度排序的搜索结果
接口参数
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
query | string | 是 | 搜索查询语句 |
token | string | 是 | 用于认证的 Bearer token |
noContent | boolean | 否 | 是否排除内容仅返回元数据(默认 false) |
客户端配置
方法一:使用 workers-mcp CLI(推荐)
{ "mcpServers": { "jinaReader": { "command": "/path/to/workers-mcp", "args": [ "run", "jinaReader", "http://localhost:8787", "/path/to/mcp-jina-api" ], "env": {} } } }
方法二:直接使用 URL(适用于 Claude 等客户端)
{ "mcpServers": { "jinaReader": { "command": "https://mcp-jina-api.turinhub.com", "args": [], "env": {}, "disabled": false, "autoApprove": [] } } }
内容提取示例
// 客户端调用示例 import { MCPClient } from 'workers-mcp' const client = new MCPClient('https://mcp-jina-api.turinhub.com') async function fetchArticle(url: string) { try { const response = await client.call('reader', { url, noCache: true }) if (response.ok) { const article = await response.json() console.log('提取成功:', article.title) return { content: article.content, highlights: article.keyPoints } } } catch (error) { console.error('内容提取失败:', error) } } // 调用示例 fetchArticle('https://example.com/news/2024-tech-trends')
语义搜索示例
// Search 使用示例 async function searchDocuments(query: string, token: string) { try { const response = await client.call('search', { query, token, noContent: false }) if (response.ok) { const results = await response.json() console.log(`找到 ${results.results.length} 条相关结果`) return results.results.map((doc: any) => ({ title: doc.metadata.title, score: doc.score, excerpt: doc.content.substring(0, 100) })) } } catch (error) { console.error('搜索失败:', error) } } // 搜索示例 searchDocuments('人工智能最新进展', 'your_jina_token_here')
高级配置
- • JINA_API_TOKEN: 用于认证的 API token
- • CACHE_TTL: 缓存时间(秒),默认 3600
- • MAX_CONTENT_LENGTH: 最大处理内容长度(字符),默认 100000
故障排除
- • 连接超时:确保 worker 服务正在运行(端口 8787 可用)
- • 认证失败:如需使用 token 认证,请到 Jina AI 申请 API key
- • 内容提取异常:检查目标网页是否包含 robots.txt 限制
- • 缓存问题:设置 noCache: true 强制刷新内容
- • 编码问题:部分网页需指定 charset,可在返回头中查看 Content-Type