MCP服务器示例

提供Obsidian库管理和浏览器自动化的MCP服务器示例,包含Python和TypeScript实现。

  • by frbender
  • Makefile
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 frbender/mcp-examples

使用说明

MCP服务器示例

模型上下文协议(MCP)服务器示例,带有简化、集中的工具集。此存储库包含黑曜石保险库管理和浏览器自动化的工作示例。

状态:

  • 黑曜石示例:生产就绪✅
  • AWS浏览器示例:通过真正的AWS代理核心集成为生产做好准备✅
  • 剧作家浏览器示例:生产就绪✅

🚀 快速开始

  1. 克隆和设置

    git clone <repository-url>
    cd mcp_server_examples
    make setup-all  # Installs dependencies and builds all examples
    
  2. 配置您的MCP客户端 使用 run.sh 文件作为入口点

    • 每个例子都有一个 run.sh 自动处理虚拟环境
    • 使用这些的绝对路径 .sh MCP客户端配置中的文件
  3. 测试您的设置 使用以下命令

📁 可用服务器

黑曜石金库管理

  • Python(FastMCP): examples/obsidian_python/run.sh
  • TypeScript(官方SDK): examples/obsidian_typescript/run.sh

工具: list, read, create, update, move, search, delete

浏览器自动化

  • Python(FastMCP+AWS代理核心): examples/aws_agent_core_browser_python/run.sh
  • TypeScript(AWS代理核心): examples/aws_agent_core_browser_typescript/run.sh

工具: fetch, screenshot

⚙️ 安装说明

黑曜石服务器

先决条件

  • 已配置LiveSync插件的黑曜石
  • CouchDB服务器正在运行(本地或远程)

Python设置

cd examples/obsidian_python
pip install -r requirements.txt

# Set environment variables
export VAULT_BASE_URL="http://localhost:5984"
export VAULT_DB_NAME="your-obsidian-vault"
export VAULT_USERNAME="your-username"  # optional
export VAULT_PASSWORD="your-password"  # optional

TypeScript设置

cd examples/obsidian_typescript
npm install
npm run build

# Set same environment variables as Python

浏览器服务器

Python(AWS代理核心)

cd examples/aws_agent_core_browser_python
pip install -r requirements.txt

# Optional AWS configuration
export AWS_PROFILE="your-profile"
export AWS_REGION="us-west-2"

TypeScript(AWS代理核心)

cd examples/aws_agent_core_browser_typescript
npm install
npx playwright install chromium
npm run build

🔧 客户端配置

克劳德桌面

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian-python": {
      "command": "/absolute/path/to/examples/obsidian_python/run.sh",
      "env": {
        "VAULT_BASE_URL": "http://localhost:5984",
        "VAULT_DB_NAME": "your-vault-name",
        "VAULT_USERNAME": "your-username",
        "VAULT_PASSWORD": "your-password"
      }
    },
    "aws-browser": {
      "command": "/absolute/path/to/examples/aws_agent_core_browser_typescript/run.sh",
      "env": {}
    }
  }
}

Continue.dev

添加到您的 config.json:

{
  "mcpServers": [
    {
      "name": "obsidian-python",
      "command": ["/absolute/path/to/examples/obsidian_python/run.sh"],
      "env": {
        "VAULT_BASE_URL": "http://localhost:5984",
        "VAULT_DB_NAME": "your-vault-name",
        "VAULT_USERNAME": "your-username",
        "VAULT_PASSWORD": "your-password"
      }
    },
    {
      "name": "aws-browser",
      "command": ["/absolute/path/to/examples/aws_agent_core_browser_typescript/run.sh"],
      "env": {}
    }
  ]
}

MCP检查员(开发)

npx @modelcontextprotocol/inspector examples/obsidian_python/run.sh

📋 Makefile命令

使用提供的Makefile进行简单的路径管理:

make show-paths          # Show all absolute paths
make claude-config       # Generate Claude Desktop config
make continue-config     # Generate Continue.dev config  
make test-obsidian-py    # Test Obsidian Python server
make test-browser-ts     # Test TypeScript browser server

🔍 测试您的设置

快速测试命令

# Test Obsidian Python server
echo '{"method": "tools/list"}' | examples/obsidian_python/run.sh

# Test AWS Browser TypeScript server  
echo '{"method": "tools/list"}' | examples/aws_agent_core_browser_typescript/run.sh

使用MCP检查器

# Interactive testing interface
npx @modelcontextprotocol/inspector examples/obsidian_python/run.sh

🌟 示例用法

黑曜石金库运营

# List all files
list()

# Read a specific note
read("daily/2024-01-15.md")

# Create a new note
create("ideas/new-project.md", "# New Project\n\nGreat idea!")

# Search for files
search("*.md")

浏览器自动化

# Fetch webpage content
fetch("https://example.com")

# Take a screenshot
screenshot("https://github.com")

🔧 环境变量

黑曜石服务器

变量 描述 必填
VAULT_BASE_URL CouchDB服务器URL 是
VAULT_DB_NAME 数据库/保管库名称 是
VAULT_USERNAME 身份验证用户名 否
VAULT_PASSWORD 身份验证密码 否

浏览器服务器

变量 描述 默认值
AWS_PROFILE AWS配置文件名称 无
AWS_REGION AWS区域 美国西部-2

🏗️ 建筑

入口点

  • .sh 文件:所有示例均使用 run.sh 作为切入点
  • 虚拟环境:Shell脚本会自动激活Python venvs并处理依赖关系
  • 路径独立性:无需手动管理Python/Node路径

清洁工具设计

  • 黑曜石:7个核心文件操作(CRUD+搜索/移动)
  • 浏览器:2个重点工具(获取内容+截图)

框架选择

  • python:FastMCP,用于清洁、基于装饰的API
  • TypeScript:官方MCP SDK,实现最大兼容性

错误处理

  • 全面的错误捕获和用户友好的消息
  • 自动连接管理和重试
  • 巧妙的回退(例如,当AWS代理核心不可用时的Playwright)

📚 个人自述

每个示例目录都包含详细的文档:

  • examples/obsidian_python/README.md
  • examples/obsidian_typescript/README.md
  • examples/aws_agent_core_browser_python/README.md
  • examples/aws_agent_core_browser_typescript/README.md

🤝 贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 遵循现有的代码风格和架构
  4. 添加测试和文档
  5. 提交拉取请求

📄 许可证

MIT许可证-有关实现的详细信息,请参阅各个示例目录。