返回市场
个人助理MCP

个人助理MCP

作者:lemannrus4 星标更新:2025-05-03

项目介绍

Nexus MCP

<div style="display: flex; align-items: flex-start; margin-bottom: 20px;"> <div style="flex: 0 0 800px; margin-right: 20px;"> <img alt="codsworth.png" src="assets/codsworth.png" width="800px"/> </div> <div style="flex: 1;"> 一款强大的个人助理MCP服务器,集成了包括Google日历、Obsidian保险库、Trello以及网页解析等多种服务。使用FastMCP构建,该服务器提供了一个统一的界面来管理您的数字生活。

功能

  • Google日历集成

    • 创建、读取、更新和删除日历事件
    • 列出即将发生的事件
  • Obsidian保险库管理

    • 创建、读取、更新和删除笔记
    • 笔记全文搜索
    • 文件夹管理(创建、删除、搜索、列出)
  • Trello集成

    • 看板、列表和卡片管理
    • 创建、更新和删除卡片
    • 根据文本查询搜索卡片
  • 网页解析

    • 从任何URL提取并清理HTML内容
  • Google新闻搜索

    • 搜索给定主题的最新新闻文章
    </div>
</div>

加入我在Telegram博客的讨论

预备条件

  • Python 3.10或更高版本
  • Poetry(Python包管理器)
  • Google日历API凭证
  • Trello API凭证(如果使用Trello功能)
  • Obsidian保险库(如果使用Obsidian功能)

安装

  1. 克隆仓库:

    git clone https://github.com/yourusername/nexus-mcp.git
    cd nexus-mcp
    
  2. 使用Poetry安装依赖项:

    poetry install
    
  3. 设置Google日历API:

    • 访问Google Cloud控制台
    • 创建一个新项目或选择现有项目
    • 启用Google日历API
    • 创建OAuth 2.0凭证
    • 下载凭证并将其保存为项目根目录下的credentials.json
  4. 设置Trello API(可选):

    • 访问Trello开发者门户
    • 获取您的API密钥和令牌
    • 将它们添加到环境变量或配置文件中

配置

  1. 运行初始设置以与Google日历进行身份验证:
    poetry run python main.py
    
    • 这将打开浏览器窗口进行Google身份验证
    • 按照提示授权应用程序

使用方法

  1. 启动服务器:

    poetry run python main.py
    
  2. 服务器启动并准备好接受兼容MCP的客户端连接。

  3. 使用任何兼容MCP的客户端与服务器交互。服务器提供了以下工具:

    • 日历管理
    • Obsidian保险库操作
    • Trello看板管理
    • 网页解析

Anthropic Claude Desktop配置

要使用此服务器与Anthropic Claude Desktop配合,请在Claude Desktop设置中添加以下配置:

{
   "mcpServers": {
      "personal-assistant": {
         "command": "/path/to/your/venv/bin/python",
         "args": ["/path/to/your/project/main.py"],
         "env": {
                 "GOOGLE_CREDENTIALS_PATH": "/path/to/your/credentials.json",
                 "GOOGLE_TOKEN_PATH": "/path/to/your/token.json",
                 "GOOGLE_API_KEY": "your_google_api_key",
                 "GOOGLE_CX_ID": "your_google_cx_id",
                 "OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault",
                 "OBSIDIAN_DEFAULT_FOLDER": "your_default_folder",
                 "TRELLO_API_KEY": "your_trello_api_key",
                 "TRELLO_TOKEN": "your_trello_token",
                 "LOG_PATH": "/path/to/log.txt",
                 "ENABLE_OBSIDIAN_TOOLS": "True/False",
                 "ENABLE_TRELLO_TOOLS": "True/False",
                 "ENABLE_CALENDAR_TOOLS": "True/False",
                 "ENABLE_NEWS_SEARCH": "True/False",
                 "ENABLE_WEB_PARSER": "True/False",
                 "SEMANTIC_SEARCH_ENABLED": "True/False",
                 "EMBEDDINGS_PATH": "/path/to/embeddings.json"
         }
      }
   }
}

替换路径和凭证为您实际的值:

  • command:指向您Python虚拟环境的Python可执行文件的路径
  • args:指向您项目main.py文件的路径
  • ENABLE_OBSIDIAN_TOOLS:设置为True启用Obsidian工具
  • ENABLE_TRELLO_TOOLS:设置为True启用Trello工具
  • ENABLE_CALENDAR_TOOLS:设置为True启用Google日历工具
  • ENABLE_NEWS_SEARCH:设置为True启用Google新闻搜索
  • ENABLE_WEB_PARSER:设置为True启用网页解析工具
  • GOOGLE_CREDENTIALS_PATH:指向您的Google日历凭证文件(credentials.json)的路径
  • GOOGLE_TOKEN_PATH:指向您的Google日历令牌文件(token.json)的路径
  • GOOGLE_API_KEY:您的Google API密钥(用于自定义搜索API)
  • GOOGLE_CX_ID:您的Google可编程搜索引擎ID(自定义搜索API的CX ID)
  • OBSIDIAN_VAULT_PATH:指向您的Obsidian保险库的路径
  • OBSIDIAN_DEFAULT_FOLDER:可选,默认文件夹路径,在其中创建新的笔记
  • TRELLO_API_KEY:您的Trello API密钥
  • TRELLO_TOKEN:您的Trello API令牌
  • LOG_PATH:指向日志文件的路径
  • SEMANTIC_SEARCH_ENABLED:设置为True启用Obsidian保险库的语义搜索
  • SIMILARITY_TRESHOLD:默认值为0.5,这是语义搜索的阈值
  • EMBEDDINGS_PATH:可选,指向由Obsidian矢量搜索插件生成的嵌入JSON文件的路径(如果没有设置,默认为.obsidian/plugins/vector-search/data.json相对于OBSIDIAN_VAULT_PATH
  • MODEL_TOKEN_LIMIT:AI模型理解何时对笔记进行分块的限制
  • CHUNK_SIZE_TOKENS:分块大小

要启用语义搜索功能,您需要安装Vector Search插件

img.png

重新索引过程完成后,插件将在以下位置生成包含向量嵌入的JSON文件:

.obsidian/plugins/vector-search/data.json

此文件将作为语义搜索查询的嵌入源。

推荐客户端:

开发

  • 该项目使用Poetry进行依赖管理
  • 所有工具都在main.py中注册
  • 特定于服务的实现位于services/目录下
  • 遵循PEP 8风格指南编写Python代码

贡献

  1. 分叉仓库
  2. 创建您的功能分支(git checkout -b feature/amazing-feature
  3. 提交更改(git commit -m 'Add some amazing feature'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开Pull Request
</div>