Sybase数据库MCP服务器

一个基于Node.js的MCP协议服务器,用于远程连接和查询Sybase数据库,支持表结构查看和只读SQL查询。

  • by ricardoaburto
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 ricardoaburto/mcp-sybase-server

使用说明

@mcp sybase服务器开发

该项目提供与 模型上下文协议(MCP),旨在与Sybase数据库交互。它充当与MCP兼容的客户端(如IA向导)和数据库之间的桥梁,允许远程执行查询和探索数据库模式。

服务器由Node.js构建,并使用Java连接器(JDBC)建立与Sybase的通信。

特征

  • 与Sybase数据库的安全连接。
  • 列出所有可用的表。
  • 特定表的架构描述。
  • 执行只读SQL查询(SELECT).
  • 支持在带有Docker的容器中部署。

先决条件

在开始之前,请确保您的系统上安装了以下内容:

  • Node.js (建议V18或更高版本)
  • npm (通常用node.js安装)
  • Java开发工具包(JDK) (建议JDK 11或更高)
  • 码头工人 (可选,仅当您想使用容器部署时)

安装

  1. 克隆存储库 (或下载目录中的文件):

    # Ejemplo si estuviera en un repositorio git
    # git clone https://github.com/mcp-sybase-server-dev.git
    # cd sybase-server
    
  2. 安装依赖项并编译项目: 导航到项目的根目录并执行以下命令。该命令将安装所需的node.js包,并自动运行脚本来编译Java和TypeScript代码。

    npm install
    

    最后,您应该有一个新文件夹 dist 准备好执行JavaScript代码。

谎言

运行服务器

要启动服务器,请从项目的根目录运行以下命令,以JSON字符串提供与Sybase的连接细节。

node dist/src/index.js "{\"host\":\"tu_host\",\"port\":tu_puerto,\"database\":\"tu_db\",\"user\":\"tu_usuario\",\"password\":\"tu_contraseña\"}"

重要的:

  • 替换的值 tu_host, tu_puerto等等,用你真正的证书。
  • 整个JSON连接字符串必须用双引号包装(")让终端将其解释为一个参数。

如果服务器正确启动,终端将等待连接。除非发生错误,否则不会显示任何其他消息。

可用的工具

一旦服务器运行并连接到MCP客户端,您可以使用以下工具(通常通过自然语言):

list_tables

列出数据库中的所有用户表。

  • 示例说明: "¿Qué tablas hay en la base de datos?"

describe_table

显示特定表的列和数据类型。

  • 参数 : table_name (字符串)
  • 示例说明: "Describe el esquema de la tabla 'sysusers'"

query

执行查询 SELECT 并以JSON格式返回结果。

  • 参数 : sql (字符串)
  • 示例说明: "Ejecuta la consulta 'SELECT * FROM sysusers WHERE uid < 10'"

使用Docker部署(可选)

该项目包括 Dockerfile 以方便在容器中部署。

  1. 建立Docker的形象: 从项目的根目录中,执行构建脚本:

    # Para Windows (si usas Git Bash o WSL)
    sh build.sh
    
    # O directamente con Docker
    docker build -t mcp-sybase-server-dev .
    
  2. 运行容器: 使用以下命令在Docker容器中启动服务器。国旗 -i 这对于保持标准输入打开并允许服务器接收请求至关重要。

    docker run -i --rm mcp-sybase-server-dev "{\"host\":\"tu_host\",\"port\":tu_puerto,\"database\":\"tu_db\",\"user\":\"tu_usuario\",\"password\":\"tu_contraseña\"}"
    

许可证

这个项目是在麻省理工学院的许可下进行的。