返回市场
我的MCP服务器

我的MCP服务器

作者:Deejpotter0 星标更新:2025-11-10

项目介绍

My MCP Server

一个提供AI助手开发工具和API集成的Model Context Protocol (MCP)服务器,适用于VS Code。

📚 完整文档在BookStack

⚠️ 重要提示:所有文档必须在BookStack中创建,而不是作为.md文件。请参阅文档工作流程以获取指南。

包括以下内容的综合文档:

  • AI开发指南
  • 项目路线图与跟踪
  • 完整工具参考
  • 架构细节
  • 开发指南
  • 配方管理(11个配方,含营养数据)
  • Grocy集成指南

访问**MCP Server Book**上的BookStack。

关键文档页面

在BookStack中的查找位置(项目政策)

此项目的全部文档必须存在于BookStack中。不要在仓库中添加或更新本地.md文件——而是创建或编辑相应的BookStack页面。为了快速参考,关键位置如下:

在进行导入时,请首先检查这些BookStack页面。如果您需要为导入运行创建新页面(例如,每张收据摘要),请在项目书籍或Woolworths Receipt Imports (2025-11-09)书籍下创建,并链接回项目书籍。

快速开始

先决条件

  • Node.js 18或更高版本
  • npm(随Node.js一起提供)

安装

# 克隆仓库
git clone https://github.com/Deejpotter/my-mcp-server.git
cd my-mcp-server

# 安装依赖
npm install

# 构建服务器
npm run build

可用脚本

  • npm run build - 将TypeScript编译成JavaScript
  • npm run dev - 带自动重载的开发模式
  • npm start - 运行已编译的服务器
  • npm run typecheck - 检查TypeScript类型
  • npm run lint - 运行ESLint检查
  • npm test - 运行测试套件

VS Code集成

添加到您的VS Code MCP设置文件(Linux/macOS上的~/.config/Code/User/mcp.json或Windows上的%APPDATA%\Code\User\mcp.json):

生产模式(推荐)

{
  "servers": {
    "my-mcp-server": {
      "command": "npm",
      "args": [
        "--prefix",
        "~/Repos/my-mcp-server",
        "start"
      ],
      "env": {}
    }
  }
}

注意: 在任何代码更改后运行npm run build

开发模式

{
  "servers": {
    "my-mcp-server": {
      "command": "npm",
      "args": [
        "--prefix",
        "~/Repos/my-mcp-server",
        "run",
        "dev"
      ],
      "env": {}
    }
  }
}

注意: 文件更改时自动重新加载,无需构建步骤。

配置

在项目根目录创建一个.env文件以进行API集成:

# Google搜索(通过SerpAPI) - 免费层级:每月100次搜索
SERPAPI_API_KEY=your_serpapi_key_here

# Context7 - 可选,用于增强文档
CONTEXT7_API_KEY=your_context7_key_here

# BookStack - 必需,用于BookStack工具
BOOKSTACK_URL=https://your-bookstack-instance.com
BOOKSTACK_TOKEN_ID=your_token_id_here
BOOKSTACK_TOKEN_SECRET=your_token_secret_here

# ClickUp - 必需,用于ClickUp工具
CLICKUP_API_TOKEN=your_clickup_token_here

# Grocy - 必需,用于Grocy工具
GROCY_BASE_URL=https://your-grocy-instance.com
GROCY_API_KEY=your_grocy_api_key_here

# Hugging Face - 必需,用于AI图像生成
HUGGING_FACE_API_KEY=your_hugging_face_key_here

注意: DuckDuckGo搜索无需任何API密钥即可工作。

许可证

MIT许可证 - 详见LICENSE文件。

可用工具

所有工具均包含全面的安全验证和错误处理。

文件操作

  • read_file - 读取文件内容,带大小限制和路径验证

    • 安全性:阻止路径遍历,验证工作目录内的路径
    • 默认最大大小:1MB(可配置)
  • write_file - 写入文件内容,自动创建目录

    • 安全性:路径验证,防止写入禁止目录
    • 自动创建父目录
  • list_files - 列出文件,支持glob模式

    • 支持递归目录遍历
    • 过滤禁止路径(.git,node_modules,.env)

网络搜索

  • google_search - 使用SerpAPI搜索Google

    • 返回结构化结果:标题、URL、摘要、位置
    • 需要SERPAPI_API_KEY环境变量(免费层级:每月100次搜索)
    • 支持特定地点的结果
  • duckduckgo_search - 搜索DuckDuckGo以获取网络结果

    • 不需要API密钥 - 免费且不限量
    • 返回真实的网络搜索结果,带有标题、URL和摘要
    • 隐私聚焦的搜索选项,无追踪

文档查询

  • resolve_library_id - 查找包对应的正确Context7库ID

    • 搜索库、框架和文档
    • 返回最佳匹配项及其元数据(代码片段、信任分数、版本)
  • get_documentation - 从Context7获取全面文档

    • 获取最新、版本特定的文档
    • 可选主题过滤以获得专注的文档
    • 可配置的令牌限制以控制文档长度
  • search_documentation - 在Context7的多个库中搜索

    • 跨文档全文搜索
    • 按类别/技术筛选
    • 返回相关排名结果及其摘要

BookStack集成

  • bookstack_search - 在BookStack文档中搜索

    • 搜索书籍、页面、章节和书架
    • 支持高级搜索语法(过滤器、精确匹配、标签)
    • 返回预览和元数据
    • 需要BOOKSTACK_URLBOOKSTACK_TOKEN_IDBOOKSTACK_TOKEN_SECRET
  • bookstack_get_shelf - 获取书架详情和书籍

    • 检索书架信息,包括所有书籍
    • 按显示顺序查看书籍列表
    • 包括元数据和层次结构
  • bookstack_get_page - 获取完整页面内容

    • 以HTML和Markdown格式获取页面内容
    • 包括所有元数据和层次结构信息
  • bookstack_get_book - 获取书籍结构

    • 检索书籍详情和目录
    • 以结构化格式查看所有章节和页面
  • bookstack_create_shelf - 创建新的书架

    • 创建顶级书架以组织多本书籍
    • 创建书架时可选择添加书籍
    • 支持描述和标签
  • bookstack_create_book - 创建新的书籍

    • 创建具有名称、描述和标签的顶级书籍
    • 返回书籍ID和URL以添加章节/页面
    • 支持标签以进行组织
  • bookstack_create_chapter - 在书籍内创建章节

    • 将页面组织成逻辑章节
    • 需要父书籍ID
    • 支持描述和标签
  • bookstack_create_page - 创建带有内容的页面

    • 在书籍或章节内创建页面
    • 支持HTML和Markdown内容
    • 自动提取base64图片到画廊
    • 需要书籍ID或章节ID
  • bookstack_update_shelf - 更新书架详情和书籍

    • 修改书架名称、描述和书籍分配
    • 通过提供新的书籍数组来重新排序书籍
    • 支持部分更新
  • bookstack_update_book - 更新书籍详情

    • 修改书籍名称、描述和标签
    • 支持部分更新(仅提供要更改的字段)
  • bookstack_update_page - 更新页面内容和元数据

    • 更新页面名称、HTML/Markdown内容和标签
    • 移动页面到其他书籍或章节
    • 支持部分更新
  • bookstack_delete_shelf - 删除书架

    • 警告:永久删除书架(无法撤销)
    • 书架内的书籍被保留
    • 需要书架ID
  • bookstack_delete_book - 删除书籍

    • 警告:永久删除书籍及其所有章节和页面(无法撤销)
    • 需要书籍ID
  • bookstack_delete_chapter - 删除章节

    • 警告:永久删除章节及其所有页面(无法撤销)
    • 需要章节ID
  • bookstack_delete_page - 删除页面

    • 警告:永久删除页面(无法撤销)
    • 需要页面ID

ClickUp集成

  • clickup_get_task - 获取任务详情

    • 获取完整的任务信息,包括状态、优先级、负责人
    • 查看标签、日期、描述和自定义字段
    • 需要CLICKUP_API_TOKEN
  • clickup_create_task - 创建新任务

    • 在任何列表中创建任务,具有名称、描述、状态
    • 设置优先级、截止日期、负责人和标签
    • 返回任务ID和URL
  • clickup_update_task - 更新现有任务

    • 修改任务属性(名称、描述、状态、优先级)
    • 添加或移除负责人
    • 更新截止日期和其他字段

Grocy集成

厨房和家庭库存管理,智能库存跟踪、购物清单和食谱。

库存管理:

  • grocy_stock_get_current - 获取完整的库存概览,包括数量和最佳食用日期
  • grocy_stock_get_product - 获取详细的产品信息、定价和历史
  • grocy_stock_add_product - 向库存添加产品(购买跟踪,带有日期和价格)
  • grocy_stock_consume_product - 从库存中移除产品(消费跟踪,采用FIFO)
  • grocy_stock_get_volatile - 获取即将过期、逾期、过期或低于最低库存的产品
  • grocy_stock_get_product_by_barcode - 通过条形码查找产品

购物清单:

  • grocy_shoppinglist_add_product - 向购物清单添加产品
  • grocy_shoppinglist_remove_product - 从购物清单移除产品
  • grocy_shoppinglist_add_missing - 自动添加所有低于最低库存的产品
  • grocy_shoppinglist_clear - 清空购物清单(所有项目或仅完成项目)

产品管理:

  • grocy_product_create - 在Grocy中创建新产品(在添加到食谱之前需要创建)
  • grocy_location_list - 列出所有存储位置(用于产品创建)
  • grocy_quantity_unit_list - 列出所有数量单位(件、克、千克、升、毫升等)

食谱及膳食计划:

  • grocy_recipe_create - 创建新的食谱,具有名称、描述和服务信息
  • grocy_recipe_add_ingredient - 向食谱添加成分,带有数量和产品ID
  • grocy_recipe_get_fulfillment - 检查库存中是否有食谱所需的成分
  • grocy_recipe_consume - 消耗食谱中的所有成分
  • grocy_recipe_add_missing_to_shoppinglist - 将缺失的食谱成分添加到购物清单
  • grocy_meal_plan_add - 将食谱添加到特定日期的膳食计划日历
  • grocy_meal_plan_get - 获取日期范围内的膳食计划(每周计划概览)

任务:

  • grocy_tasks_get_pending - 获取所有未完成的任务
  • grocy_task_complete - 标记任务已完成

系统:

  • grocy_system_info - 获取Grocy版本和系统信息

需要GROCY_BASE_URLGROCY_API_KEY环境变量。

澳大利亚超市价格比较

搜索并比较澳大利亚Woolworths和Coles超市的价格。

  • woolworths_search_product - 搜索Woolworths产品并获取当前价格

    • 公共API(无需身份验证)
    • 返回产品名称、价格、单位(千克、克、升、毫升、每个、包装)
    • 包括包装尺寸和单价信息
    • 使用可选参数限制结果
  • coles_search_product - 搜索Coles产品并获取当前价格

    • 返回产品名称、价格、单位和包装尺寸
    • 支持特定商店搜索(默认:商店0584)
    • 需要COLES_API_KEY环境变量
    • 使用可选参数限制结果
  • grocery_compare_prices - 在两家商店之间比较价格

    • 同时在Woolworths和Coles搜索产品
    • 显示每家商店的最佳匹配及其价格
    • 计算哪家商店最便宜
    • 显示节省金额
    • 适合做出明智的购物决策

示例用法:

"在Woolworths搜索碎牛肉"
"检查Coles的意大利面价格"
"比较两家商店的番茄酱价格"
"找到橄榄油的最便宜选项"

优点:

  • 来自澳大利亚两大主要超市的实时价格
  • 单位价格比较(每千克、每100克等)
  • 通过在最便宜的商店购物来省钱
  • 与Grocy购物清单集成(即将推出)

需要COLES_API_KEY环境变量。Woolworths API是公开的,不需要密钥。

命令执行

  • run_command - 执行shell命令,带安全验证

    • 仅允许执行白名单命令(git、ls、pwd、echo、cat、grep、find、npm、node等)
    • 超时保护(默认30秒)
    • 工作目录验证
  • security_status - 查看安全配置

    • 显示允许的命令
    • 列出禁止的路径和目录
    • 显示当前安全设置

Git集成

  • git_command - 安全地执行git命令
    • 仅限验证的git操作
    • 验证仓库目录
    • 超时保护(默认60秒)

图像生成与操作

  • image_generate - 使用AI从文本提示生成图像

    • 使用Hugging Face FLUX.1模型(schnell和dev)
    • 多种尺寸选项(512x512至1024x1024)
    • 支持负面提示和指导比例
    • 需要HUGGING_FACE_API_KEY(免费层级:每天约50张图像)
    • 详细文档
  • image_convert - 在格式之间转换图像

    • 支持WEBP、PNG、JPEG、AVIF、GIF、TIFF
    • 支持批量处理和目录支持
    • 质量控制和文件夹结构保存
    • 适合优化图像以供网页/BookStack使用
  • image_resize - 使用智能策略调整图像大小

    • 7种方便的预设(缩略图至4K)
    • 5种填充策略(覆盖、包含、填充、内部、外部)
    • 自动保持宽高比
    • 支持批量处理
  • image_optimize - 优化图像以减少文件大小

    • 格式特定压缩(mozjpeg、调色板减少)
    • 通常节省40-70%的空间
    • 选项保留元数据
    • 提供详细的统计报告

可用资源

资源提供只读上下文信息给AI助手。

可用提示

这些是由MCP服务器提供的高质量、工作流程导向的提示。每个提示