模型上下文协议实现

MCP是一个标准化协议,用于为大型语言模型提供上下文,支持GitHub和LinkedIn等数据源的集成。

  • by rakeshbrgowda
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 RakeshBR1999/mcp-server

使用说明

模型上下文协议(MCP)实现示例

此存储库包含模型上下文协议(MCP)的示例实现,MCP是一种为大型语言模型(LLM)提供上下文的标准化方法。

什么是MCP?

模型上下文协议(MCP)是一种开放协议,它规范了应用程序如何向LLM提供上下文。将MCP想象成AI应用程序的USB-C端口——它提供了一种将AI模型连接到不同数据源和工具的标准化方法。

目录

此存储库包括:

  • simple_mcp_server.py:基本的MCP服务器实现
  • github_mcp_server.py:一个从GitHub存储库提供代码上下文的MCP服务器
  • linkedin_mcp_server.py:支持LinkedIn集成的MCP服务器
  • llm_with_mcp.py:将LLM连接到MCP服务器的示例代码

入门指南

先决条件

  • Python 3.8+
  • 必需的Python包(使用pip安装):

安装

  1. 克隆此存储库:
git clone https://github.com/yourusername/mcp-server.git
cd mcp-server
  1. 安装依赖项:
pip install -r requirements.txt

用法

运行简单的MCP服务器

python simple_mcp_server.py

这将启动一个基本的MCP服务器 http://localhost:8000.

GitHub集成

要运行GitHub MCP服务器:

# Set your GitHub token as an environment variable
export GITHUB_TOKEN=your_github_token_here

# Run the server
python github_mcp_server.py

LinkedIn集成

要运行LinkedIn MCP服务器:

# Set your LinkedIn credentials
export LINKEDIN_CLIENT_ID=your_client_id
export LINKEDIN_CLIENT_SECRET=your_client_secret

# Run the server
python linkedin_mcp_server.py

将LLM连接到MCP服务器

python llm_with_mcp.py

有关如何配置LLM以使用不同MCP服务器的示例,请参阅代码。

配置

您可以使用环境变量或通过修改配置文件来配置服务器:

  • config/simple_mcp_config.json:简单MCP服务器的配置
  • config/github_config.json:GitHub MCP服务器的配置
  • config/linkedin_config.json:LinkedIn MCP服务器的配置

配置文件详细信息

简单的MCP服务器配置

这 config/simple_mcp_config.json 文件包含基本MCP服务器的设置:

{
    "server": {
        "host": "0.0.0.0",
        "port": 8000,
        "debug": false
    },
    "retrieval": {
        "max_context_length": 4000,
        "max_results": 5,
        "similarity_threshold": 0.7
    },
    "logging": {
        "level": "INFO",
        "file": "logs/simple_mcp_server.log"
    }
}

GitHub MCP服务器配置

这 config/github_config.json 文件配置GitHub集成:

{
    "server": {
        "host": "0.0.0.0",
        "port": 8001,
        "debug": false
    },
    "github": {
        "token": "",
        "max_repos": 5,
        "max_files_per_repo": 20,
        "include_private_repos": false
    },
    "retrieval": {
        "max_context_length": 4000,
        "max_results": 5,
        "similarity_threshold": 0.7
    },
    "logging": {
        "level": "INFO",
        "file": "logs/github_mcp_server.log"
    }
}

LinkedIn MCP服务器配置

这 config/linkedin_config.json 文件配置LinkedIn集成:

{
    "server": {
        "host": "0.0.0.0",
        "port": 8002,
        "debug": false
    },
    "linkedin": {
        "client_id": "",
        "client_secret": "",
        "redirect_uri": "http://localhost:8002/auth/callback",
        "scope": "r_liteprofile r_emailaddress"
    },
    "retrieval": {
        "max_context_length": 2000,
        "max_results": 3
    },
    "logging": {
        "level": "INFO",
        "file": "logs/linkedin_mcp_server.log"
    }
}

使用环境变量

您还可以使用环境变量配置服务器:

# Simple MCP Server
export MCP_SERVER_PORT=8000
export MCP_MAX_CONTEXT_LENGTH=4000

# GitHub MCP Server
export GITHUB_TOKEN=your_github_token_here
export GITHUB_MCP_SERVER_PORT=8001

# LinkedIn MCP Server
export LINKEDIN_CLIENT_ID=your_client_id
export LINKEDIN_CLIENT_SECRET=your_client_secret
export LINKEDIN_MCP_SERVER_PORT=8002

API文档

每个MCP服务器实现以下端点:

  • POST /retrieve:根据输入查询检索上下文
  • GET /health:健康检查端点
  • GET /info:返回有关服务器功能的信息

有关API的详细文档,请参阅 MCP规范.

贡献

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