Thaddeus
Thaddeus
一个本地化的 JARVIS 风格个人助手,由 Thach Ngo(Thomas Ngo)开发。 其目标是在完全本地运行的同时提升工作效率和生产力。一个 Python 编排器驱动本地 Ollama 模型(Qwen2.5 32B, 工具调用),该模型通过 stdio 调用自定义 MCP 服务器,用于记忆、日历/提醒、天气、Notion 任务跟踪、 Claude Code 委托(规划/实现/审查)、网络搜索、雅思评分/练习题生成,以及跑步相关功能(Strava 数据 + 本地赛事跟踪器)。
隐私 / 网络边界
大部分功能完全在本地运行——Ollama 推理、SQLite 记忆、通过 AppleScript 访问 macOS 日历/提醒。以下是明确允许联网的例外服务器:
weather — 通过明文 HTTPS GET 请求 open-meteo.com,无需 API 密钥,不涉及个人数据(仅需坐标或城市名)。
notion — 使用你的集成令牌与 Notion API 通信,用于读取和管理任务数据库。
claude — 唯一一个需要访问云端 LLM 的服务器(通过
claudeCLI 调用 Anthropic 的 API)。每次调用均以--permission-mode plan(只读任务)或acceptEdits配合显式的 git push/commit 拒绝列表(用于implement_from_plan)运行——经过实时验证,无论请求什么都不会执行提交或推送。web_search — 查询一个自托管的 SearXNG 实例(参见
searxng/)。你的任何 API 密钥或账户信息都不会发送给第三方,但 SearXNG 本身仍会通过网络向上游搜索引擎(Google、Bing 等)请求结果,这与任何元搜索引擎聚合器的工作方式相同。曾尝试过两种替代方案但被拒绝:Brave Search API 即使免费层级也需要绑定信用卡;Google 的自定义搜索 API 自 2025 年起已关闭新注册。
notion 和 claude 会优雅降级——如果它们的 .env 密钥未设置,则跳过该服务器并发出警告,其他所有功能仍正常启动。web_search 不需要密钥,但需要 SearXNG 容器实际运行中。
strava 完全本地运行——它读取你自己的免费个人数据导出文件(activities.csv),而不是调用 Strava 的实时 API(因为实时 API 现在每月收费 11.99 美元,标准层级访问,2026 年 6 月政策变更已确认)。并非实时;需要定期从 Strava 账户设置重新导出以刷新数据。其赛事跟踪器和 find_races(通过网络搜索候选人即将举行的赛事,因为 Strava 的 API 即使在付费墙之前也从未包含赛事数据)无需任何 Strava 导出即可工作。
Strava 导出自动化
请求导出本身需要一个已登录的 Strava 浏览器会话,因此这部分无法自动化——但下载 ZIP 后的所有步骤都可以自动化。一个 LaunchAgent(scripts/install_strava_automation.sh)每天运行 scripts/strava_automation.py,该脚本会:
监控
~/Downloads目录中的 Strava 导出 ZIP(通过检查其中是否包含activities.csv来检测,而非猜测 Strava 的确切文件名),并自动将其解压到data/strava_export/——无需手动解压/移动步骤大约每 14 天在 Reminders.app 中创建一个提醒,提示你重新请求导出,因为该步骤仍需你手动操作
这两个部分都是幂等的(通过 data/ 目录中的标记文件跟踪),因此每天运行时,如果没有任何事可做,则不会执行任何操作。卸载方式:launchctl bootout gui/$(id -u)/com.thachngo.thaddeus.strava-automation,然后删除 ~/Library/LaunchAgents/ 中的 plist 文件。
Related MCP server: Conectica
设置
ollama serve(如果尚未运行),然后拉取一个支持工具调用的 Qwen2.5 32B 构建版本(参见.env中的OLLAMA_MODEL了解使用的确切标签)python3 -m venv .venv && source .venv/bin/activatepip install -e ".[dev]"cp .env.example .env并填写WEATHER_DEFAULT_LAT/WEATHER_DEFAULT_LONpython scripts/sanity_check_sdk.py— 在构建其他任何内容之前,确认已安装的mcpSDK 的实际 API 表面python scripts/init_db.pycd searxng && docker compose up -d && cd ..— 启动本地搜索后端(一次性操作;重启后保持运行)可选,用于运行除赛事跟踪器之外的工具:请求 Strava 数据导出(账户设置 > 我的账户 > 下载或删除账户 > 请求存档),收到邮件后将其解压到
data/strava_export/,然后运行python scripts/inspect_strava_export.py以对照strava_server.py假设的列名/单位检查实际列名/单位python -m orchestrator.main
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
One memory, every AI: Claude, ChatGPT, Perplexity, Gemini, Cursor, OpenClaw, Hermes, any MCP client.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that bridges local Ollama models and ChromaDB vector memory to MCP clients like Claude Code. It enables local text generation, vision-based image analysis, and semantic memory storage without requiring external API keys.MIT
- -licenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables multiple AI models (Claude, ChatGPT, Gemini) to share and persist context via a local-first vault of markdown files and SQLite index, allowing seamless cross-AI memory.-
- FlicenseNot gradedqualityDmaintenanceA personal assistant MCP server that integrates Todoist, Anki, Obsidian, and Google Calendar to help you learn, organize, and stay productive through natural language interactions.2-
- FlicenseNot gradedqualityBmaintenanceA custom MCP server exposing database, ticketing, and external-API tools to both Claude Desktop and a self-built autonomous agent powered by Groq's free-tier LLaMA 3.3.-