AI模型交互协议服务器

MCP Coding Server是一个生产就绪的模型上下文协议服务器,为AI模型提供与系统交互的全面工具,包括文件操作、系统命令、Web抓取、代码分析、Git操作、数据库操作和AI集成等功能。

  • by dilip8700
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dilip8700/ai-coding-mcp-server

使用说明

🤖 MCP编码服务器

一个生产就绪的模型上下文协议(MCP)服务器,为AI模型与您的系统交互提供全面的工具。

🚀 什么是MCP?

MCP(模型上下文协议)是一种标准协议,允许AI模型调用系统上的函数。此服务器提供以下工具:

  • 文件操作:读取、写入、搜索文件
  • 系统命令:安全执行终端命令
  • Web剪贴:从网站提取数据
  • 代码分析:分析和格式化代码
  • Git操作:版本控制命令
  • 数据库操作:SQL查询和命令
  • 人工智能集成:生成和分析内容

📋 特性

🔧 核心工具

文件操作

  • file_read -读取文件内容
  • file_write -将内容写入文件
  • file_search -按模式搜索文件
  • file_list -列出目录内容
  • file_search_content -在文件中搜索文本
  • file_info -获取文件信息

系统操作

  • system_info -获取系统信息
  • system_command -执行终端命令
  • system_package -安装Python包

Web操作

  • web_scrape -删除网页内容
  • web_api -进行HTTP API调用

代码操作

  • code_analyze -分析代码中的问题
  • code_format -格式代码

Git操作

  • git_status -检查git状态
  • git_commit -提交更改
  • git_push -推到远程

数据库操作

  • db_query -执行SQL查询
  • db_execute -执行SQL命令

人工智能操作

  • ai_generate -生成代码/文本
  • ai_analyze -分析内容

🛠️ 安装

先决条件

  • Python 3.8或更高版本
  • pip(Python包管理器)

快速开始

  1. 克隆或下载服务器文件

    # Make sure you have all the files in your directory
    ls -la
    
  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 设置环境变量(可选)

    export OPENAI_API_KEY="your-openai-api-key"
    export ANTHROPIC_API_KEY="your-anthropic-api-key"
    export GITHUB_TOKEN="your-github-token"
    
  4. 运行服务器

    python server.py
    

🔧 配置

环境变量

变量 描述 默认值
OPENAI_API_KEY 人工智能工具的OpenAI API密钥 无
ANTHROPIC_API_KEY 人工智能工具的Anthropic API密钥 无
GITHUB_TOKEN 用于git操作的GitHub令牌 无
MCP_SERVER_HOST 服务器主机 localhost
MCP_SERVER_PORT 服务器端口 8000
MCP_BASE_PATH 文件操作的基本目录 当前目录
MCP_WORKING_DIR 命令工作目录 当前目录
MCP_DATA_DIR 数据目录 。/数据
MCP_RATE_LIMIT 每分钟速率限制 60
MCP_MAX_FILE_SIZE 最大文件大小(MB) 100
MCP_LOG_LEVEL 日志记录级别 信息
MCP_LOG_FILE 日志文件路径 mcp_server.Log
MCP_METRICS_ENABLED 启用指标收集 true

安全功能

  • 速率限制:通过可配置的限制防止滥用
  • 命令验证:阻止危险的系统命令
  • 路径验证:确保文件在允许的目录内
  • 文件大小限制:防止大文件操作
  • 扩展过滤:只允许安全的文件类型

📖 用法

启动服务器

# Basic start
python server.py

# With custom configuration
MCP_BASE_PATH=/path/to/workspace python server.py

# With logging
MCP_LOG_LEVEL=DEBUG python server.py

从AI模型连接

服务器通过MCP协议进行通信。AI模型可以连接和调用这样的工具:

# Example tool call from AI
{
    "method": "tools/call",
    "params": {
        "name": "file_read",
        "arguments": {
            "path": "main.py"
        }
    }
}

工具示例

读取文件

{
    "name": "file_read",
    "arguments": {
        "path": "src/main.py",
        "encoding": "utf-8"
    }
}

写入文件

{
    "name": "file_write",
    "arguments": {
        "path": "new_file.py",
        "content": "print('Hello, World!')"
    }
}

执行命令

{
    "name": "system_command",
    "arguments": {
        "command": "ls -la",
        "timeout": 30
    }
}

搜索文件

{
    "name": "file_search",
    "arguments": {
        "pattern": "*.py",
        "recursive": true
    }
}

废弃网站

{
    "name": "web_scrape",
    "arguments": {
        "url": "https://example.com"
    }
}

🏗️ 建筑

项目结构

mcp_coding_server/
├── server.py              # Main MCP server
├── config.py              # Configuration management
├── requirements.txt       # Python dependencies
├── README.md             # This file
├── tools/                # Tool implementations
│   ├── __init__.py
│   ├── file_tools.py     # File operations
│   ├── system_tools.py   # System commands
│   ├── web_tools.py      # Web scraping
│   ├── code_tools.py     # Code analysis
│   ├── git_tools.py      # Git operations
│   ├── database_tools.py # Database operations
│   └── ai_tools.py       # AI integration
└── utils/                # Utilities
    ├── __init__.py
    ├── logger.py         # Logging setup
    ├── security.py       # Security manager
    └── metrics.py        # Metrics collection

核心组件

  1. MCP服务器:处理MCP协议的主服务器类
  2. 工具类:单个工具实施
  3. 安全经理:处理安全和速率限制
  4. 度量收集器:收集使用情况指标
  5. 配置:管理配置和环境变量

🔒 安全

内置保护

  • 命令阻止:危险命令被自动阻止
  • 路径验证:所有文件操作都限制在允许的目录中
  • 速率限制:通过可配置的限制防止滥用
  • 输入消毒:所有输入都经过消毒
  • 错误处理:全面的错误处理和记录

已阻止的命令

  • rm -rf / -危险文件删除
  • format c: -磁盘格式化
  • sudo -特权升级
  • chmod 777 -危险权限
  • 还有更多。..

📊 监控

指标收集

服务器自动收集指标,包括:

  • 请求计数
  • 响应时间
  • 错误率
  • 工具使用统计

日志记录

控制台和文件的全面日志记录:

  • 请求/响应日志记录
  • 误差跟踪
  • 安全事件
  • 性能指标

🚀 生产部署

Docker(推荐)

FROM python:3.11-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .
EXPOSE 8000

CMD ["python", "server.py"]

环境设置

# Production environment variables
export MCP_LOG_LEVEL=WARNING
export MCP_METRICS_ENABLED=true
export MCP_RATE_LIMIT=30
export MCP_MAX_FILE_SIZE=50

🔧 发展

添加新工具

  1. 在中创建新的工具类 tools/
  2. 实施 get_tools() 方法
  3. 实施 handle_tool_call() 方法
  4. 在中注册该工具 server.py

示例工具

class MyTool:
    def get_tools(self) -> List[Tool]:
        return [
            Tool(
                name="my_tool",
                description="My custom tool",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "param": {"type": "string"}
                    }
                }
            )
        ]
    
    async def handle_tool_call(self, tool_name: str, arguments: Dict[str, Any]) -> Dict[str, Any]:
        if tool_name == "my_tool":
            return await self._my_tool_function(arguments)

🐛 故障排除

常见问题

  1. 导入错误:确保安装了所有依赖项

    pip install -r requirements.txt
    
  2. 权限错误:检查文件和目录权限

    chmod +x server.py
    
  3. 端口已在使用中:更改配置中的端口

    export MCP_SERVER_PORT=8001
    
  4. API关键问题:验证API密钥设置是否正确

    echo $OPENAI_API_KEY
    

调试模式

MCP_LOG_LEVEL=DEBUG python server.py

📝 许可证

该项目根据MIT许可证获得许可。

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📞 支持

对于问题和疑问:

  1. 检查故障排除部分
  2. 查看登录 mcp_server.log
  3. 启用调试日志记录
  4. 用详细信息创建问题

与你的AI助手一起编码快乐! 🚀