返回市场
纳布昌-MCP服务器

纳布昌-MCP服务器

作者:backpaper02 星标更新:2025-06-01

项目介绍

nabchan-mcp-server

[!WARNING] 这是一个实验性项目,有很大的改进空间。

概述

这是一个基于Nablarch文档返回Nablarch信息的MCP服务器。

快速开始

可以使用Docker轻松进行测试。

graph LR
  a[VSCode]
  b[nabchan-mcp-server<br>(Docker容器)]
  a -->|通过标准输入输出通信| b

请在VSCode中添加以下设置。

{
  "mcp": {
    "inputs": [],
    "servers": {
      "nablarch-document": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "--network",
          "none",
          "-e",
          "TRANSPORT=stdio",
          "ghcr.io/backpaper0/nabchan-mcp-server",
        ]
      }
    }
  }
}

请将GitHub Copilot Chat切换到代理模式,并尝试提出关于Nablarch的问题。

通过ToolHive运行

如果希望通过ToolHive运行,请执行以下命令。

thv run --name nabchan-mcp-server ghcr.io/backpaper0/nabchan-mcp-server -- --transport=stdio

架构

架构设计为仅使用本地的Python环境运行。

使用DuckDB的全文搜索扩展(全文搜索扩展)和形态分析库Lindera构建索引。 从Nablarch文档的HTML文件中提取的文本经过形态分析后成为全文搜索的目标字段。 此外还包含了标题、摘要以及转换为Markdown格式的内容,这些内容可以通过MCP服务器提供的API访问。

graph TD
   h[Nablarch文档<br>(HTML文件)]
   c(文本)
   d(摘要)
   t(标题)
   m(Markdown)
   i[DuckDB]

   h -->|用BeautifulSoup<br>提取文本| c
   c -->|用Lindera进行形态分析| i
   c -->|用LLM生成摘要| d
   d --> i
   h -->|用BeautifulSoup<br>提取标题| t
   t --> i
   h -->|用html2text<br>转换为Markdown| m
   m --> i

MCP服务器提供的API如下:

  • read_document
    • 返回指定URL的Nablarch文档的Markdown格式内容。
  • search_document
    • 搜索Nablarch文档。返回的信息包括:
      • 标题
      • URL
      • 摘要

nabchan-mcp-server开发者指南

开发所需环境

  • Python 3.11
  • uv
  • Git
  • Docker

构建索引

uv run -m tools.build_index

[!NOTE] 如果未获取子模块内容,请执行git submodule initgit submodule update

尝试搜索

uv run -m tools.search_document -q "Nablarch"

开发时VSCode配置示例

请将/path/to/nabchan-mcp-server替换为实际路径。

{
  "mcp": {
    "inputs": [],
    "servers": {
      "nablarch-document": {
        "command": "uv",
        "args": [
          "--directory",
          "/path/to/nabchan-mcp-server",
          "run",
          "-m",
          "nabchan_mcp_server.main",
        ]
      }
    }
  }
}

如果使用SSE作为传输类型,请参考以下配置。

{
  "mcp": {
    "inputs": [],
    "servers": {
      "nablarch-document": {
        "type": "sse",
        "url": "http://localhost:8000/sse"
      }
    }
  }
}

使用SSE时,需要提前启动服务器。

uv run -m nabchan_mcp_server.main --transport sse --host localhost