Duyet MCP Server
An experimental Model Context Protocol server that enables AI assistants to access information about Duyet, including his CV, blog posts, and GitHub activity through natural language queries.
README
duyet-mcp-server
An experimental MCP (Model Context Protocol) server that helps AI assistants connect to and retrieve information about duyet. This server provides access to information primarily available at https://duyet.net, making it available directly to your AI assistant.
Usage: Update MCP server configuration in your AI assistant:
{
"mcpServers": {
"duyet-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.duyet.net/sse"
]
}
}
}
If you are using Claude Code:
claude mcp add --transport http duyet https://mcp.duyet.net/mcp
Endpoints:
- https://mcp.duyet.net/sse
- https://mcp.duyet.net/mcp

About This Project
This is a study, demo, and experimental project designed to explore MCP capabilities. The project serves as a learning exercise in building remote MCP servers and is mostly written by LLM as well.
Purpose: Enable AI assistants to access and retrieve information about duyet's work, projects, and content that would otherwise require manual web browsing.
Deploy to Cloudflare Workers
This will deploy your MCP server to a URL like: duyet-mcp-server.<your-account>.workers.dev/sse
Alternatively, you can clone and deploy using the command line:
git clone https://github.com/duyet/duyet-mcp-server
cd duyet-mcp-server
npm install
npm run deploy
Customizing Your MCP Server
To add your own tools to the MCP server, define each tool inside the init() method of src/index.ts using this.server.tool(...).
Connect to Cloudflare AI Playground
You can test your MCP server using the Cloudflare AI Playground:
- Go to https://playground.ai.cloudflare.com/
- Enter your deployed MCP server URL (
duyet-mcp-server.<your-account>.workers.dev/sseorduyet-mcp-server.<your-account>.workers.dev/mcp) - You can now use the duyet information tools directly from the playground!
Connect Claude Desktop to Your MCP Server
You can connect to your remote MCP server from Claude Desktop using the mcp-remote proxy.
To connect from Claude Desktop, follow Anthropic's Quickstart and go to Settings > Developer > Edit Config.
Update with this configuration:
{
"mcpServers": {
"duyet-info": {
"command": "npx",
"args": [
"mcp-remote",
"https://duyet-mcp-server.<your-account>.workers.dev/sse"
]
}
}
}
You should see the duyet-mcp information tools become available.
Available Resources and Tools
This MCP server exposes both Resources (read-only data access via URIs) and Tools (interactive functions with parameters). Resources are automatically discovered by Claude Chat for natural conversation flow, while tools are used for actions that require user input.
Resources
Resources provide read-only access to information through URI-based requests. These are automatically discoverable by Claude Chat.
Core Information Resources
duyet://about- Basic information about Duyet with dynamically calculated years of experienceduyet://cv/{format}- CV/resume with format parameters:duyet://cv/summary- Brief CV overviewduyet://cv/detailed- Comprehensive CV informationduyet://cv/json- Structured CV data (when available)
Content Resources
duyet://blog/posts/{limit}- Latest blog posts from Duyet's technical blogduyet://blog/posts/1- Latest blog postduyet://blog/posts/5- Latest 5 blog posts (limit: 1-10)
duyet://github-activity- Recent GitHub contributions and activity
Tools
Tools provide interactive functionality with input parameters and side effects.
send_message- Send a message to Duyet for collaboration, job opportunities, consulting, or general inquiries. Messages are saved with a reference ID for follow-upget_cv- Retrieve Duyet's CV (curriculum vitae) in different formats - summary, detailed, or JSON formatget_github_activity- Retrieve Duyet's recent GitHub activity including commits, issues, pull requests, releases, and other public events. View up to 20 recent activities with optional detailed informationhire_me- Get information about hiring Duyet for various roles - full-time, contract, consulting, or part-time positions. Includes expertise, experience, and next stepssay_hi- Send a friendly greeting to Duyet with an optional personal message. Get contact information and connection linkscontact_analytics- Generate analytics reports on contact submissions including summary statistics, purpose breakdown, daily trends, and recent activity patterns
Claude Chat Examples
Here are examples of natural conversation flows using this MCP server:
Learning About Duyet
User: Who is Duyet and what does he do?
Claude: [Automatically accesses duyet://about resource]
Duyet is a Data Engineer with 8 years of experience. He is confident in his knowledge of Data Engineering concepts, best practices and state-of-the-art data and Cloud technologies. You can check out his blog at https://blog.duyet.net, his CV at https://duyet.net/cv, and his projects at https://github.com/duyet.
User: What has he been writing about lately?
Claude: [Automatically accesses duyet://blog/posts/3 resource]
His latest blog posts include topics on data engineering, cloud technologies, and distributed systems. Would you like me to show you more details about any specific post?
User: What's he working on currently?
Claude: [Automatically accesses duyet://github-activity resource]
Based on his recent GitHub activity, Duyet has been working on MCP server implementations, data pipeline projects, and contributing to open source tools for data engineering.
Hiring and Collaboration
User: I'm looking to hire a data engineer. Can you help me contact Duyet?
Claude: I can help you send a message to Duyet using the send_message tool. What type of opportunity is this?
User: It's a full-time position at our startup working with Kafka and Spark
Claude: [Uses send_message tool]
What would you like to say in your message to Duyet? I'll make sure to include that this is about a full-time position with Kafka and Spark technologies.
User: Hi Duyet, we're a Series A startup building real-time data platforms. We'd love to discuss a Senior Data Engineer role working with Kafka, Spark, and cloud infrastructure. Remote-friendly position with competitive equity.
Claude: [Executes send_message tool with the message]
Your message has been sent successfully! Here's your reference ID: abc-123-def for follow-up. Duyet can be reached directly at me@duyet.net, LinkedIn: https://linkedin.com/in/duyet, or GitHub: https://github.com/duyet.
Technical Research
User: I want to understand Duyet's technical background before our interview
Claude: [Automatically accesses duyet://cv/detailed resource]
Based on Duyet's detailed CV, he has 8 years of experience in data engineering with expertise in Apache Spark, Kafka, cloud platforms, and distributed systems. His experience includes building scalable data pipelines and working with modern data stack technologies.
User: Can you show me some of his recent technical work?
Claude: [Automatically accesses duyet://github-activity resource]
His recent GitHub activity shows contributions to data engineering projects, MCP server implementations, and open source tools. He's been actively working on distributed systems and cloud-native data solutions.
User: What kind of content does he write about?
Claude: [Automatically accesses duyet://blog/posts/5 resource]
His technical blog covers topics like building scalable data pipelines, modern data engineering best practices, cloud technologies, and distributed systems architecture.
Natural Discovery Pattern
The key advantage of this MCP server design is that Claude Chat can naturally discover and reference information through resources, making conversations more fluid:
-
Information Questions → Automatic Resource Access
- "Who is Duyet?" →
duyet://about - "What's his experience?" →
duyet://cv/detailed - "What's he writing about?" →
duyet://blog/posts/3 - "What's he working on?" →
duyet://github-activity
- "Who is Duyet?" →
-
Action Requests → Interactive Tools
- "I want to contact him" →
send_messagetool - "Can you send him a greeting?" →
say_hitool - "Get his resume" →
get_cvtool
- "I want to contact him" →
-
Progressive Disclosure
- Start with general questions
- Drill down into specific areas
- Take actions when ready
Architecture
- Framework: Hono.js running on Cloudflare Workers
- Database: Cloudflare D1 with Drizzle ORM
- Testing: Jest with comprehensive test coverage
- Linting: Biome for code quality
- Type Safety: TypeScript with strict configuration
License
MIT License - see LICENSE file for details.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。