笔记搜索终端工具

一款基于OpenAI Agents SDK的智能终端聊天机器人,通过Docker连接Evernote MCP服务器,支持自然语言搜索、查询和交互Evernote笔记。

  • by BittnerPierre
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BittnerPierre/mcp-evernote-cli

使用说明

Evernote MCP命令行界面

一个由OpenAI Agents SDK支持的智能终端聊天机器人,连接到Docker托管的Evernote MCP服务器,使用自然语言搜索、查询和交互您的Evernotes。

特性

  • 🤖 AI驱动的代理:使用OpenAI代理SDK智能解释自然语言查询
  • 🔌 MCP集成:通过Docker stdio连接到Evernote MCP服务器,实现可靠通信
  • 🗒️ Evernote工具:完全访问 createSearch, getSearch, getNote,以及 getNoteContent MCP工具
  • 💬 会话界面:自然语言交互与语境对话记忆
  • 📝 会话管理:维护会话之间的对话历史记录
  • 🎨 丰富的格式:支持markdown的漂亮终端输出
  • 🔧 可扩展架构:易于添加用于摘要、分析等的其他代理

安装

先决条件

  1. Python 3.12+:确保安装了Python 3.12或更高版本
  2. 诗歌:安装 诗歌 用于依赖关系管理
  3. 码头工人:确保Docker已安装并正在运行
  4. Evernote MCP服务器:有 Evernote MCP服务器 在Docker容器中运行
  5. OpenAI API密钥:您需要AI代理的OpenAI API密钥

设置

# Clone the repository
git clone https://github.com/BittnerPierre/mcp-evernote-cli.git
cd mcp-evernote-cli

# Install dependencies
poetry install

# Set up your API keys (secrets)
cp .env.example .env
# Edit .env and add your API key (OPENAI_API_KEY or ANTHROPIC_API_KEY)

# Optional: Set up custom configuration
cp config.example.yaml config.yaml
# Edit config.yaml to choose your LLM provider and model

设置Evernote MCP服务器

请遵循以下说明 evernote mcp服务器 在Docker中设置Evernote MCP服务器。

运行后,记下你的Docker容器名称(默认值: evernote-mcp-server-evernote-mcp-server-1)

用法

交互式聊天

# Start the AI-powered chatbot
poetry run evernote-chat

查询示例

AI代理能够理解自然语言查询,例如:

  • “查找我关于机器学习的所有笔记”
  • “显示我上个月创建的关于项目规划的笔记”
  • “我写了什么关于LLMs的文章?”
  • “搜索标记为“季度回顾”的笔记并对其进行总结”

命令行选项

poetry run evernote-chat --help

可用选项:

  • --container-name:Evernote MCP服务器的Docker容器名称
  • --max-notes:每次查询检索的最大注释数
  • --no-history:禁用对话历史记录持久化

配置

聊天机器人使用两层配置系统:

1.API密钥(.env文件)

将您的秘密存储在 .env 文件:

  • OPENAI_API_KEY -如果使用OpenAI提供程序,则需要
  • ANTHROPIC_API_KEY -如果使用Anthropic/Claude提供者,则需要

2.应用程序设置(config.yaml或环境变量)

配置LLM提供程序、模型和其他设置:

通过config.yaml (推荐):

llm:
  provider: openai  # or "anthropic"
  model: gpt-4      # optional, uses provider default if not set

通过环境变量:

环境变量 描述 默认值
LLM_PROVIDER 要使用的LLM提供者(openai 或 anthropic) openai
LLM_MODEL 要使用的特定模型(可选) 提供程序默认值
CONTAINER_NAME Evernote MCP服务器的Docker容器名称 evernote-mcp-server-evernote-mcp-server-1
ALLOWED_NOTEBOOKS 逗号分隔的允许笔记本列表 所有笔记本
MAX_NOTES_PER_QUERY 每次查询可检索的最大注释数 20
PREFER_HTML 是否更喜欢HTML内容而不是文本 false
SAVE_HISTORY 启用对话历史记录持久化 true
HISTORY_FILE 对话历史文件的路径 .evernote_chat_history.json

建筑

聊天机器人使用现代AI代理架构:

User Query → AI Agent (OpenAI Agents SDK) → MCP Client → Docker MCP Server → Evernote API
                                                ↓
                                        Intelligent Query Planning
                                        Tool Selection & Execution
                                        Natural Language Response

AI代理:

  1. 解释您的自然语言查询
  2. Evernote MCP工具使用计划
  3. 执行搜索并检索笔记
  4. 以对话的方式格式化和呈现结果

发展

运行测试

# Run all tests
poetry run pytest tests/ -v

# Run with coverage
poetry run pytest tests/ --cov=src --cov-report=html

代码质量

# Format code
poetry run ruff format .

# Lint code
poetry run ruff check .

通过其他代理进行扩展

该架构支持添加以下专用代理:

  • 摘要:自动摘要
  • 分析:内容分析和见解
  • 组织:智能标记和分类
  • 出口:自定义导出格式和报告

看 src/evernote_chatbot/agents.py 了解实施细节。

贡献

欢迎投稿!请随时提交拉取请求。

许可证

此项目根据GNU通用公共许可证v3.0获得许可-请参阅 许可证 文件以获取详细信息。

致谢

相关项目