# 绅聚企业资料检索MCP

基于企业资料的MCP（Model Context Protocol）服务器，可用于企业内部知识检索和智能问答。

## 功能特点

- 符合MCP（Model Context Protocol）协议规范
- 支持企业内部文档检索和问答
- 支持多种文件格式的智能解析
- 支持云服务部署和本地部署
- 支持会话管理和上下文保持
- 低延迟、高可用、可扩展

## 环境要求

- Node.js 16+
- 企业资料库
- API密钥
- 服务器或云环境

## 目录结构

```
shenju-enterprise-search-mcp/
├── lib/                    # 库文件
│   ├── search-client.js    # 检索客户端
│   └── mcp-server.js       # MCP服务器核心
├── bin/                    # 可执行文件
│   └── cli.js              # CLI入口
├── server/                 # 本地服务器
│   └── index.js            # Express服务器入口
├── index.js                # 函数计算入口
├── fc-config.yml           # 函数计算配置
├── package.json            # 项目依赖
└── .env.example            # 环境变量示例
```

## 快速开始

### 本地开发

1. 克隆项目并安装依赖：

```bash
git clone <repository-url>
cd shenju-enterprise-search-mcp
npm install
```

2. 配置环境变量，创建一个`.env`文件：

```
API_KEY=your_api_key_here
APP_ID=your_app_id_here
SEARCH_API_BASE_URL=https://api.enterprise-search.example.com/v1
PORT=8080
```

3. 启动服务：

```bash
npm start
```

服务将在 http://localhost:8080 上运行。

## 部署到云服务

### 方法一：使用NPX直接部署（推荐）

1. 发布npm包：

```bash
npm publish  # 发布到npm公共仓库
# 或者发布到私有仓库
npm publish --registry=<私有仓库URL>
```

2. 在企业MCP服务配置中使用以下设置：

```json
{
  "mcpServers": {
    "enterprise-search": {
      "command": "npx",
      "args": ["-y", "shenju-enterprise-search-mcp"],
      "env": {
        "API_KEY": "your_api_key_here",
        "APP_ID": "your_app_id_here"
      }
    }
  }
}
```

### 方法二：使用云函数部署

1. 打包项目：

```bash
zip -r shenju-enterprise-search.zip .
```

2. 登录云服务控制台
3. 创建服务和函数
4. 上传代码包
5. 配置环境变量：
   - API_KEY
   - APP_ID
   - SEARCH_API_BASE_URL (可选)

## API接口

### GET /tool/list
返回所有可用工具列表。

**响应示例**：
```json
{
  "tools": [
    {
      "name": "document_search",
      "description": "在企业资料库中搜索相关文档，返回最匹配的内容",
      "input_schema": {...}
    },
    {
      "name": "document_qa",
      "description": "根据企业资料库回答问题，提供精确答案",
      "input_schema": {...}
    }
  ]
}
```

### POST /tool/call
调用指定的工具。

**请求体**：
```json
{
  "sessionId": "可选会话ID",
  "toolName": "document_search",
  "parameters": {
    "query": "公司休假政策",
    "filter": "部门=人力资源"
  }
}
```

**响应示例**：
```json
{
  "response": "根据企业规定，正式员工每年有10天带薪年假，病假需提供医疗证明...",
  "source_documents": ["员工手册.pdf", "休假管理规定.docx"],
  "session_id": "xxx-xxx-xxx"
}
```

## 配置项

| 环境变量 | 描述 | 默认值 |
|---------|------|-------|
| API_KEY | API密钥 | 无（必填） |
| APP_ID | 应用ID | 无（可选） |
| SEARCH_API_BASE_URL | 检索API基础URL | https://api.enterprise-search.example.com/v1 |
| PORT | 本地服务端口 | 8080 |
| HOST | 本地服务主机 | 0.0.0.0 |

## 许可证

MIT 