返回市场
MCP任务文件服务器

MCP任务文件服务器

作者:rsclarke7 星标更新:2025-11-20

项目介绍

MCP Taskfile Server

一个基于模型上下文协议(MCP)的服务器,动态地将Taskfile.yml中的任务暴露为独立的MCP工具,允许AI助手发现并执行Taskfile中定义的任何任务。

使用mcp-go库实现强大的MCP协议,并使用go-task库解析和执行Taskfile.yml。

为什么

  • 构建、检查等标准实践已经在Taskfile中定义。允许助手直接执行这些任务。
  • 实现本地、持续集成和AI之间的兼容性。
  • 这看起来是一个有趣的想法。

特性

  • 动态任务发现:运行时自动发现Taskfile.yml中的所有任务
  • 独立任务工具:每个任务都成为具有适当模式的独立MCP工具
  • 变量模式生成:自动提取任务变量以进行适当的参数验证
  • 原生任务执行:直接使用go-task库(不使用子进程执行)
  • MCP协议合规性:使用mcp-go库实现完整的MCP规范
  • 高级API:使用经过验证的库构建,确保代码清晰且易于维护

要求

  • Go 1.19或更高版本

安装

go get github.com/rsclarke/mcp-taskfile-server

使用方法

运行服务器

服务器通过stdin/stdout上的JSON-RPC通信,暴露当前工作目录下的Taskfile.yml:

mcp-taskfile-server

动态工具发现

服务器自动发现Taskfile.yml中的所有任务,并将每个任务作为独立的MCP工具公开。

每个工具自动包括:

  • 任务特定变量:从任务定义中提取,并带有适当的默认值
  • 适当的描述:使用Taskfile.yml中的任务描述

MCP集成

此服务器实现了模型上下文协议,可以与任何兼容MCP的客户端或AI助手一起使用。服务器:

  1. 动态发现所有任务
  2. 公开每个任务作为具有适当JSON模式的独立MCP工具
  3. 自动提取任务变量以进行参数验证
  4. 原生执行任务使用go-task库(无子进程调用)
  5. 提供全面的错误处理和反馈

错误处理

服务器处理各种错误情况:

  • 缺少Taskfile.yml
  • 无效的任务名称
  • 任务执行失败
  • 无效的MCP请求

所有错误均按照MCP错误响应格式返回。

安全考虑

此服务器执行Taskfile中定义的任意命令。仅在受信任的环境中使用,并确保您的Taskfile不包含恶意命令。

开发

要修改或扩展服务器:

  1. 服务器设置:使用mcp-go中的server.NewMCPServer()创建MCP服务器
  2. 动态发现:通过go-task库中的taskfile.Tasks.All()发现任务
  3. 工具生成:每个任务通过createToolForTask()成为MCP工具
  4. 变量提取:自动提取任务变量以生成模式
  5. 处理器创建:每个任务通过createTaskHandler()获得自己的处理器
  6. 原生执行:使用go-task库中的executor.Run()执行任务

关键组件

  • NewTaskfileServer():设置go-task执行器并解析Taskfile.yml
  • registerTasks():发现任务并将它们注册到MCP服务器
  • createToolForTask():根据任务定义生成MCP工具模式
  • createTaskHandler():为每个任务创建执行处理器

关键依赖项

  • mcp-go:高级MCP协议实现
  • go-task:原生Taskfile.yml解析和执行

服务器使用go-task库的原生API进行解析和执行,确保与Taskfile.yml功能的最大兼容性。