数据库管理工具

一个基于TypeScript和PostgreSQL的服务器端工具,用于管理和查询数据库表,支持通过Ollama模型进行交互。

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

使用说明

README.md

项目概况

该项目是TypeScript上使用PostgreSQL数据库的服务器部分。

必要依赖

  • Node.js
  • TypeScript
  • PostgreSQL
  • 奥拉玛
  • VSCODE+扩展Continue

安装说明

  1. 将存储库克隆到本地计算机。
  2. 通过执行命令安装必要的依赖项 npm install 或 yarn install 在项目的根目录中。
  3. 创建一个新的文件名 .env 在项目根目录中,并将凭据添加到数据库(请参阅文件) .env.example).
  4. 通过运行命令收集项目 npm build 或 yarn build

配置PostgreSQL

创建数据库:

CREATE DATABASE mcp_demo;

创建测试表:

\c mcp_demo;

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT NOW()
);

CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    price DECIMAL(10,2),
    category VARCHAR(50)
);

-- Добавьте тестовые данные
INSERT INTO users (name, email) VALUES
('Иван Петров', 'ivan@example.com'),
('Мария Сидорова', 'maria@example.com');

INSERT INTO products (name, price, category) VALUES
('Ноутбук', 1500.00, 'Электроника'),
('Книга', 25.50, 'Литература');

设置OLLAMA

LLAMA3.1:8B模型表现最好

ollama pull llama3.1:8b

配置扩展Continue

模型连接

name: Local Config
version: 1.0.0
schema: v1
models:
  - name: llama3.1:8b
    provider: ollama
    model: llama3.1:8b
    roles:
      - chat
      - edit
      - apply
      - autocomplete

context:
  - provider: file
  - provider: code
  - provider: diff
  - provider: currentFile
  - provider: open
  - provider: tree
  - provider: problems
  - provider: terminal
  - provider: repo-map
    params:
      includeSignatures: false # default true

连接MCP服务器

在“设置”中,转到“工具”部分,在那里创建新的MCP服务器。在MCP服务器设置中指定

name: New MCP server
version: 0.0.1
schema: v1
mcpServers:
  - name: New MCP server
    command: node
    args:
      - "/path/to/dist/server.js"
    env:
      {
        "DB_HOST": "localhost",
        "DB_PORT": "5432",
        "DB_NAME": "mcp_demo",
        "DB_USER": "postgres",
        "DB_PASSWORD": "dp_password",
      }

测试

检验用

使用MCP工具,查看本地数据库中的表,并在聊天中显示用户表中的数据。不要编写代码,不要在终端执行请求,不要在互联网上提出请求

答案示例

执行了3个操作 继续使用新的MCP服务器get_tables工具 继续读取当前文件 继续搜索“用户”

本地数据库中的表:

用户 产品 用户表中的数据:

id名称电子邮件

  1. 伊万·彼得罗夫ivan@example.com
  2. 玛丽亚·西多罗娃maria@example.com