Frank Goortani CV MCP Server
好的,明白了。 这是一台提供关于弗兰克·古尔塔尼的简历的静态答案的 MCP 服务器。 (Zhè shì yī tái tígōng guānyú Fúlánkè Gǔ'ěrtǎní de jiǎnlì de jìngtài dá'àn de MCP fúwùqì.)
FrankGoortani
README
Frank Goortani CV MCP 服务器
一个专门用于提供 Frank Goortani 简历信息的模型上下文协议 (MCP) 服务器。该服务器提供对简历数据的结构化访问,使 AI 助手和其他 MCP 兼容的客户端能够以标准化格式检索、搜索和呈现专业信息。
项目概述
目的
本项目实现了一个 MCP 服务器,通过标准化接口公开 Frank Goortani 的简历信息。该服务器允许 AI 助手和 MCP 兼容的应用程序访问结构化的简历数据,包括专业简介、技能、工作经验等。
架构概述
该项目使用 FastMCP 框架构建,并遵循模型上下文协议规范。它采用模块化架构设计:
- 核心模块: 包含数据结构、工具实现和资源定义
- 服务器模块: 提供 stdio 和 HTTP 通信的传输处理程序
- 部署: 配置为无缝部署到 Cloudflare Workers
graph TD
LLM[LLM 系统] -->|MCP 协议| API[CV MCP API]
API -->|工具| CV[简历数据]
API -->|资源| MD[简历 Markdown]
subgraph "Frank Goortani CV MCP 服务器"
API
subgraph "数据源"
CV
MD
end
end
API -->|部署| CFW[Cloudflare Workers]
主要特性
- 简历数据访问: 结构化访问个人资料信息、技能、兴趣和工作经验
- Markdown 资源: 完整的简历以 markdown 资源的形式提供
- 搜索功能: 跨所有简历部分进行文本搜索
- 公司经验过滤: 定向检索特定公司的工作经验
- 媒体访问: 直接链接到简历 PDF 和个人资料图片
- 部署就绪: 配置为 Cloudflare Workers 部署
- 双重传输: 支持 stdio(本地)和 HTTP(远程)通信
资源和工具
可用资源
URI | 描述 | 类型 |
---|---|---|
cv://frankgoortani |
Frank Goortani 的完整简历,markdown 格式 | text/markdown |
可用工具
get_profile
返回 Frank Goortani 的个人资料信息,包括姓名、职称和专业描述。
- 参数: 无
- 返回: 包含个人资料信息的 JSON 对象
示例:
// 请求
const result = await client.callTool("get_profile", {});
// 响应
{
"name": "Frank Goortani",
"title": "实践型解决方案架构师 | LLM, Web, Cloud, Mobile, Strategy",
"certifications": ["TOGAF", "PMP"],
"email": "frank@goortani.com",
"description": "具有超过 25 年经验的有远见的技术主管和 AI 领导者..."
}
get_skills
返回 Frank Goortani 的专业技能列表。
- 参数: 无
- 返回: 技能的 JSON 数组
示例:
// 请求
const result = await client.callTool("get_skills", {});
// 响应
[
"分布式系统、API 平台、微服务、集成、工作流系统",
"生成式 AI、大型语言模型 (LLM)、AI 代理、AI 自动化、机器学习",
"Go、Python、Java、Swift、Typescript 和 JavaScript 中的反应式和函数式编程",
// ...其他技能
]
get_interests
返回 Frank Goortani 的专业兴趣列表。
- 参数: 无
- 返回: 兴趣的 JSON 数组
示例:
// 请求
const result = await client.callTool("get_interests", {});
// 响应
[
"初创公司", "GoLang", "Python", "Typescript", "LangChain", "LLMs", "微服务", "MCPs"
]
search_cv
在整个简历中搜索特定术语并返回匹配的部分。
- 参数:
query
(string): 要在简历中查找的搜索词
- 返回: 包含匹配部分的 JSON 对象
示例:
// 请求
const result = await client.callTool("search_cv", {
query: "generative ai"
});
// 响应
{
"matches": [
{
"section": "profile",
"content": "具有超过 25 年经验的有远见的技术主管和 AI 领导者,在生成式 AI 领域推动战略创新..."
},
{
"section": "skills",
"content": "生成式 AI、大型语言模型 (LLM)、AI 代理、AI 自动化、机器学习"
}
// ...其他匹配项
]
}
get_company_experience
检索在特定公司的工作经验。
- 参数:
company
(string): 要获取经验的公司名称
- 返回: 包含匹配经验的 JSON 对象
示例:
// 请求
const result = await client.callTool("get_company_experience", {
company: "Uber"
});
// 响应
{
"found": true,
"experiences": [
{
"company": "Uber",
"period": "2021-now",
"title": "解决方案架构师",
"highlights": [
"致力于 UDE(用户数据提取)和 DSAR(数据主体访问请求)自动化...",
// ...其他亮点
]
}
]
}
get_resume_link
返回 Frank Goortani 的简历 PDF 的 URL。
- 参数: 无
- 返回: 包含简历 URL 的 JSON 对象
示例:
// 请求
const result = await client.callTool("get_resume_link", {});
// 响应
{
"resumeLink": "media/Frank Goortani Resume--solution-architect-2024.pdf"
}
get_profile_picture
返回 Frank Goortani 的个人资料图片的 URL。
- 参数: 无
- 返回: 包含个人资料图片 URL 的 JSON 对象
示例:
// 请求
const result = await client.callTool("get_profile_picture", {});
// 响应
{
"pictureLink": "media/frankgoortani.png"
}
部署说明
前提条件
- Bun 或 Node.js (v18+)
- Wrangler CLI(用于 Cloudflare 部署)
- Cloudflare 帐户(用于部署)
本地开发
-
克隆存储库
git clone <repository-url> cd cv-mcp
-
安装依赖项
# 使用 Bun (推荐) bun install # 或者使用 npm npm install
-
使用 stdio 传输在本地启动服务器(用于 CLI 工具)
# 使用 Bun bun start # 或者使用 npm npm start
-
使用 HTTP 传输在本地启动服务器(用于 Web 应用程序)
# 使用 Bun bun run start:http # 或者使用 npm npm run start:http
-
用于自动重新加载的开发
# 使用 Bun 和 stdio 传输 bun run dev # 使用 Bun 和 HTTP 传输 bun run dev:http
Cloudflare 部署
-
登录到您的 Cloudflare 帐户
wrangler login
-
如果需要,更新 wrangler.toml
配置已在
wrangler.toml
文件中设置。 您可能想要自定义:- 自定义域名路由
- 环境变量
- KV 命名空间连接
-
部署到 Cloudflare
# 部署到生产环境 npm run deploy # 或者部署到开发环境 npm run deploy:dev
-
用于本地测试 Cloudflare Worker
npm run dev:cf
环境配置
该项目使用以下可以配置的环境变量:
PORT
: 用于本地开发的 HTTP 端口(默认值:3001)HOST
: 用于 HTTP 服务器的主机绑定(默认值:0.0.0.0)ENVIRONMENT
: 当前环境(开发/生产)
在 Cloudflare 中,这些变量在 wrangler.toml
文件中配置:
[vars]
ENVIRONMENT = "production"
[env.dev.vars]
ENVIRONMENT = "development"
使用示例
连接到服务器
从 CLI MCP 客户端连接
# 通过 stdio 传输连接
npx fastmcp dev "bun run start"
# 通过 HTTP 传输连接
npx fastmcp connect http://localhost:3001/sse
从 Cursor 连接
- 打开 Cursor 并转到设置
- 单击左侧边栏中的“Features”
- 向下滚动到“MCP Servers”部分
- 单击“Add new MCP server”
- 输入以下详细信息:
- Server name:
frank-cv-mcp
- 对于 stdio 模式:
- Type:
command
- Command:
bun run start
- Type:
- 对于 SSE 模式:
- Type:
url
- URL:
http://localhost:3001/sse
- Type:
- Server name:
- 单击“Save”
将 mcp.json 与 Cursor 一起使用
{
"mcpServers": {
"frank-cv-stdio": {
"command": "bun",
"args": ["run", "start"],
"env": {
"NODE_ENV": "development"
}
},
"frank-cv-sse": {
"url": "http://localhost:3001/sse"
}
}
}
示例请求流程
检索基本信息
// 获取个人资料信息
const profile = await client.callTool("get_profile", {});
// 获取技能列表
const skills = await client.callTool("get_skills", {});
// 将简历作为 markdown 文档获取
const cvMarkdown = await client.accessResource("cv://frankgoortani");
搜索特定经验
// 搜索 AI 经验
const aiExperience = await client.callTool("search_cv", {
query: "ai"
});
// 获取特定公司经验
const uberExperience = await client.callTool("get_company_experience", {
company: "Uber"
});
获取媒体链接
// 获取简历 PDF 链接
const resumeLink = await client.callTool("get_resume_link", {});
// 获取个人资料图片链接
const pictureLink = await client.callTool("get_profile_picture", {});
许可证
本项目根据 MIT 许可证获得许可。
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。