# files-vector-mcp-server
**注:本项目完全由 [coze](https://coze.cn) 生成,想法是希望通过小智 AI 等智能体结合 Obsidian 等 Markdown 笔记,实现简单的语音记录和查询,部分功能尚未测试,使用前请务必备份自己的笔记!!!**
一个基于FastMCP协议的文件向量化服务,支持自动目录监控、多格式文件处理和高效向量搜索,帮助你构建个人或团队知识库。
## 🌟 核心功能
- 📂 **自动目录监控**:实时监测指定目录的文件变化,自动处理新增/修改文件
- 📄 **多格式支持**:处理Markdown、PDF、DOCX、PPTX、图片等多种文件类型
- 🧩 **智能分块**:长文本自动分割为语义连贯的块,保留文件路径上下文
- 🔍 **向量搜索**:基于pgvector的高效相似性搜索,支持块级内容定位
- 🛠️ **实用工具**:提供搜索、文件读取、Markdown创建等工具,支持工作流自动化
## 🚀 工作原理
### 处理流程
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 文件监控 │───>│ 内容提取与分块 │───>│ 文本向量化 │───>│ 向量存储与索引│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 检测文件变化 │ │生成嵌入向量 │ │ 高效相似性搜索│
└─────────────┘ └─────────────┘ └─────────────┘
```
### 核心原理
1. **文件监控**:使用`watchdog`库监控目录变化,触发文件处理流程
2. **内容提取**:针对不同文件类型使用相应库提取文本(如python-docx处理DOCX)
3. **智能分块**:
- 按标题、段落等自然分隔符优先分割
- 保留完整文件路径和块编号元数据
- 支持重叠分块,避免语义断裂
4. **向量化**:调用OpenAI Embeddings API生成文本向量
5. **存储索引**:使用PostgreSQL+pgvector存储向量并创建IVFFlat索引
6. **向量搜索**:通过余弦相似度计算找到最相关的文件块
## 📦 安装与配置
### 前置要求
- Python 3.8+
- PostgreSQL 14+ (需安装pgvector扩展)
- OpenAI API密钥(用于向量化)
### 安装方式
#### 使用pip
```bash
pip install files-vector-mcp-server
```
#### 使用uvx(推荐)
```bash
uvx files-vector-mcp-server
```
### 环境配置
创建`.env`文件,配置以下环境变量:
```ini
# OpenAI配置
OPENAI_API_KEY=your_openai_api_key
OPENAI_API_URL=https://api.openai.com/v1
EMBEDDING_MODEL=text-embedding-ada-002
EMBEDDING_DIM=1024
# 数据库配置
DB_CONNECTION_STRING=postgres://user:password@localhost:5432/vector_db
# 监控目录配置(JSON格式)
WATCH_TOPICS={"docs": ["./docs"], "notes": ["./notes"]}
# 分块配置
CHUNK_SIZE=4000
CHUNK_OVERLAP=200
# 可选:MinerU API配置(高级OCR和文档处理)
MINERU_API_KEY=your_mineru_api_key
MINERU_API_URL=https://mineru.net/api/v4
```
## 💻 使用指南
### 启动服务
```bash
files-vector-mcp-server
```
### 核心工具使用
#### 1. 搜索文件内容
```bash
# 基础搜索(返回摘要)
search "Docker安装步骤"
# 搜索并返回完整内容
search "Docker安装步骤" return_content=true top_k=3
```
**返回结果示例**:
```json
{
"status": "success",
"data": [
{
"chunk_id": 42,
"file_path": "/docs/install/docker.md",
"chunk_num": 2,
"total_chunks": 5,
"similarity": 0.89,
"content_preview": "## Docker安装步骤\n\n1. 更新apt包索引...",
"content": "文件路径: /docs/install/docker.md\n块 2/5\n\n## Docker安装步骤\n\n1. 更新apt包索引...",
"last_modified": "2025-09-18T10:30:00Z"
}
]
}
```
#### 2. 读取完整文件
```bash
read_file "/docs/install/docker.md" max_chars=10000
```
#### 3. 创建Markdown文件
```bash
create_markdown "/notes/new_note.md" "# 新笔记\n\n这是通过API创建的笔记内容,将自动进行向量化处理。"
```
## ⚙️ 配置参数详解
| 参数名 | 描述 | 默认值 |
| --- | --- |---------------------------|
| `WATCH_TOPICS` | 监控主题与目录映射(JSON) | `{"默认": ["./watch_dir"]}` |
| `CHUNK_SIZE` | 分块大小(字符) | 4000 |
| `CHUNK_OVERLAP` | 块重叠字符数 | 200 |
| `EMBEDDING_MODEL` | 嵌入模型名称 | text-embedding-ada-002 |
| `EMBEDDING_DIM` | 嵌入向量维度 | 1024 |
| `BATCH_SIZE` | 批处理大小 | 5 |
| `RETRY_ATTEMPTS` | API调用重试次数 | 3 |
| `RETRY_DELAY` | 重试延迟(秒) | 5 |
## 📋 使用场景
### 1. 个人知识库
- **自动索引**:监控笔记目录,新笔记自动加入知识库
- **快速检索**:通过关键词快速找到相关笔记片段
- **上下文保留**:搜索结果包含完整文件路径和块位置
### 2. 团队文档管理
- **统一检索**:跨文档类型搜索团队所有文档
- **版本追踪**:文件修改自动更新向量,保持内容最新
- **知识共享**:通过API集成到内部系统,实现知识共享
### 3. 内容创作辅助
- **素材收集**:快速查找引用资料和灵感
- **自动笔记**:使用`create_markdown`工具自动化笔记创建
- **内容优化**:通过搜索相似内容,优化写作表达
## ❓ 常见问题
### Q: 如何处理大型PDF文件?
A: 系统会自动分块处理,默认每块4000字符,可通过`CHUNK_SIZE`调整。对于扫描PDF,建议配置MinerU API启用OCR。
### Q: 服务启动失败提示"pgvector未安装"?
A: 需要在PostgreSQL中安装pgvector扩展:
```sql
CREATE EXTENSION vector;
```
### Q: 如何提高搜索准确性?
A: 可尝试:
- 减小`CHUNK_SIZE`,提高块粒度
- 使用更具体的搜索关键词
- 调整`top_k`参数获取更多结果
## 📄 许可证
本项目基于Apache License 2.0开源许可证 - 详见[LICENSE](LICENSE)文件
## 🤝 贡献与反馈
- 项目地址:[GitHub](https://github.com/928871247/files-vector-mcp-server)
- 问题反馈:[Issue Tracker](https://github.com/928871247/files-vector-mcp-server/issues)
- 功能建议:欢迎提交PR或Issue
Raw data
{
"_id": null,
"home_page": null,
"name": "files-vector-mcp-server",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "mcp, vector-search, embeddings",
"author": null,
"author_email": "Your Name <your.email@example.com>",
"download_url": "https://files.pythonhosted.org/packages/0b/0c/f6b8396c20b94bd7a52ceb602ac9634735463040dc99a738e9e106669ed7/files_vector_mcp_server-0.1.14.tar.gz",
"platform": null,
"description": "# files-vector-mcp-server\r\n**\u6ce8\uff1a\u672c\u9879\u76ee\u5b8c\u5168\u7531 [coze](https://coze.cn) \u751f\u6210\uff0c\u60f3\u6cd5\u662f\u5e0c\u671b\u901a\u8fc7\u5c0f\u667a AI \u7b49\u667a\u80fd\u4f53\u7ed3\u5408 Obsidian \u7b49 Markdown \u7b14\u8bb0\uff0c\u5b9e\u73b0\u7b80\u5355\u7684\u8bed\u97f3\u8bb0\u5f55\u548c\u67e5\u8be2\uff0c\u90e8\u5206\u529f\u80fd\u5c1a\u672a\u6d4b\u8bd5\uff0c\u4f7f\u7528\u524d\u8bf7\u52a1\u5fc5\u5907\u4efd\u81ea\u5df1\u7684\u7b14\u8bb0\uff01\uff01\uff01**\r\n\r\n\u4e00\u4e2a\u57fa\u4e8eFastMCP\u534f\u8bae\u7684\u6587\u4ef6\u5411\u91cf\u5316\u670d\u52a1\uff0c\u652f\u6301\u81ea\u52a8\u76ee\u5f55\u76d1\u63a7\u3001\u591a\u683c\u5f0f\u6587\u4ef6\u5904\u7406\u548c\u9ad8\u6548\u5411\u91cf\u641c\u7d22\uff0c\u5e2e\u52a9\u4f60\u6784\u5efa\u4e2a\u4eba\u6216\u56e2\u961f\u77e5\u8bc6\u5e93\u3002\r\n\r\n## \ud83c\udf1f \u6838\u5fc3\u529f\u80fd\r\n\r\n- \ud83d\udcc2 **\u81ea\u52a8\u76ee\u5f55\u76d1\u63a7**\uff1a\u5b9e\u65f6\u76d1\u6d4b\u6307\u5b9a\u76ee\u5f55\u7684\u6587\u4ef6\u53d8\u5316\uff0c\u81ea\u52a8\u5904\u7406\u65b0\u589e/\u4fee\u6539\u6587\u4ef6\r\n- \ud83d\udcc4 **\u591a\u683c\u5f0f\u652f\u6301**\uff1a\u5904\u7406Markdown\u3001PDF\u3001DOCX\u3001PPTX\u3001\u56fe\u7247\u7b49\u591a\u79cd\u6587\u4ef6\u7c7b\u578b\r\n- \ud83e\udde9 **\u667a\u80fd\u5206\u5757**\uff1a\u957f\u6587\u672c\u81ea\u52a8\u5206\u5272\u4e3a\u8bed\u4e49\u8fde\u8d2f\u7684\u5757\uff0c\u4fdd\u7559\u6587\u4ef6\u8def\u5f84\u4e0a\u4e0b\u6587\r\n- \ud83d\udd0d **\u5411\u91cf\u641c\u7d22**\uff1a\u57fa\u4e8epgvector\u7684\u9ad8\u6548\u76f8\u4f3c\u6027\u641c\u7d22\uff0c\u652f\u6301\u5757\u7ea7\u5185\u5bb9\u5b9a\u4f4d\r\n- \ud83d\udee0\ufe0f **\u5b9e\u7528\u5de5\u5177**\uff1a\u63d0\u4f9b\u641c\u7d22\u3001\u6587\u4ef6\u8bfb\u53d6\u3001Markdown\u521b\u5efa\u7b49\u5de5\u5177\uff0c\u652f\u6301\u5de5\u4f5c\u6d41\u81ea\u52a8\u5316\r\n\r\n## \ud83d\ude80 \u5de5\u4f5c\u539f\u7406\r\n\r\n### \u5904\u7406\u6d41\u7a0b\r\n\r\n```\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 \u6587\u4ef6\u76d1\u63a7 \u2502\u2500\u2500\u2500>\u2502 \u5185\u5bb9\u63d0\u53d6\u4e0e\u5206\u5757 \u2502\u2500\u2500\u2500>\u2502 \u6587\u672c\u5411\u91cf\u5316 \u2502\u2500\u2500\u2500>\u2502 \u5411\u91cf\u5b58\u50a8\u4e0e\u7d22\u5f15\u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n \u2502 \u2502 \u2502\r\n \u2502 \u2502 \u2502\r\n \u25bc \u25bc \u25bc\r\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\r\n\u2502 \u68c0\u6d4b\u6587\u4ef6\u53d8\u5316 \u2502 \u2502\u751f\u6210\u5d4c\u5165\u5411\u91cf \u2502 \u2502 \u9ad8\u6548\u76f8\u4f3c\u6027\u641c\u7d22\u2502\r\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\r\n```\r\n\r\n### \u6838\u5fc3\u539f\u7406\r\n\r\n1. **\u6587\u4ef6\u76d1\u63a7**\uff1a\u4f7f\u7528`watchdog`\u5e93\u76d1\u63a7\u76ee\u5f55\u53d8\u5316\uff0c\u89e6\u53d1\u6587\u4ef6\u5904\u7406\u6d41\u7a0b\r\n2. **\u5185\u5bb9\u63d0\u53d6**\uff1a\u9488\u5bf9\u4e0d\u540c\u6587\u4ef6\u7c7b\u578b\u4f7f\u7528\u76f8\u5e94\u5e93\u63d0\u53d6\u6587\u672c\uff08\u5982python-docx\u5904\u7406DOCX\uff09\r\n3. **\u667a\u80fd\u5206\u5757**\uff1a\r\n - \u6309\u6807\u9898\u3001\u6bb5\u843d\u7b49\u81ea\u7136\u5206\u9694\u7b26\u4f18\u5148\u5206\u5272\r\n - \u4fdd\u7559\u5b8c\u6574\u6587\u4ef6\u8def\u5f84\u548c\u5757\u7f16\u53f7\u5143\u6570\u636e\r\n - \u652f\u6301\u91cd\u53e0\u5206\u5757\uff0c\u907f\u514d\u8bed\u4e49\u65ad\u88c2\r\n4. **\u5411\u91cf\u5316**\uff1a\u8c03\u7528OpenAI Embeddings API\u751f\u6210\u6587\u672c\u5411\u91cf\r\n5. **\u5b58\u50a8\u7d22\u5f15**\uff1a\u4f7f\u7528PostgreSQL+pgvector\u5b58\u50a8\u5411\u91cf\u5e76\u521b\u5efaIVFFlat\u7d22\u5f15\r\n6. **\u5411\u91cf\u641c\u7d22**\uff1a\u901a\u8fc7\u4f59\u5f26\u76f8\u4f3c\u5ea6\u8ba1\u7b97\u627e\u5230\u6700\u76f8\u5173\u7684\u6587\u4ef6\u5757\r\n\r\n## \ud83d\udce6 \u5b89\u88c5\u4e0e\u914d\u7f6e\r\n\r\n### \u524d\u7f6e\u8981\u6c42\r\n\r\n- Python 3.8+\r\n- PostgreSQL 14+ \uff08\u9700\u5b89\u88c5pgvector\u6269\u5c55\uff09\r\n- OpenAI API\u5bc6\u94a5\uff08\u7528\u4e8e\u5411\u91cf\u5316\uff09\r\n\r\n### \u5b89\u88c5\u65b9\u5f0f\r\n\r\n#### \u4f7f\u7528pip\r\n\r\n```bash\r\npip install files-vector-mcp-server\r\n```\r\n\r\n#### \u4f7f\u7528uvx\uff08\u63a8\u8350\uff09\r\n\r\n```bash\r\nuvx files-vector-mcp-server\r\n```\r\n\r\n### \u73af\u5883\u914d\u7f6e\r\n\r\n\u521b\u5efa`.env`\u6587\u4ef6\uff0c\u914d\u7f6e\u4ee5\u4e0b\u73af\u5883\u53d8\u91cf\uff1a\r\n\r\n```ini\r\n# OpenAI\u914d\u7f6e\r\nOPENAI_API_KEY=your_openai_api_key\r\nOPENAI_API_URL=https://api.openai.com/v1\r\nEMBEDDING_MODEL=text-embedding-ada-002\r\nEMBEDDING_DIM=1024\r\n\r\n# \u6570\u636e\u5e93\u914d\u7f6e\r\nDB_CONNECTION_STRING=postgres://user:password@localhost:5432/vector_db\r\n\r\n# \u76d1\u63a7\u76ee\u5f55\u914d\u7f6e\uff08JSON\u683c\u5f0f\uff09\r\nWATCH_TOPICS={\"docs\": [\"./docs\"], \"notes\": [\"./notes\"]}\r\n\r\n# \u5206\u5757\u914d\u7f6e\r\nCHUNK_SIZE=4000\r\nCHUNK_OVERLAP=200\r\n\r\n# \u53ef\u9009\uff1aMinerU API\u914d\u7f6e\uff08\u9ad8\u7ea7OCR\u548c\u6587\u6863\u5904\u7406\uff09\r\nMINERU_API_KEY=your_mineru_api_key\r\nMINERU_API_URL=https://mineru.net/api/v4\r\n```\r\n\r\n## \ud83d\udcbb \u4f7f\u7528\u6307\u5357\r\n\r\n### \u542f\u52a8\u670d\u52a1\r\n\r\n```bash\r\nfiles-vector-mcp-server\r\n```\r\n\r\n### \u6838\u5fc3\u5de5\u5177\u4f7f\u7528\r\n\r\n#### 1. \u641c\u7d22\u6587\u4ef6\u5185\u5bb9\r\n\r\n```bash\r\n# \u57fa\u7840\u641c\u7d22\uff08\u8fd4\u56de\u6458\u8981\uff09\r\nsearch \"Docker\u5b89\u88c5\u6b65\u9aa4\"\r\n\r\n# \u641c\u7d22\u5e76\u8fd4\u56de\u5b8c\u6574\u5185\u5bb9\r\nsearch \"Docker\u5b89\u88c5\u6b65\u9aa4\" return_content=true top_k=3\r\n```\r\n\r\n**\u8fd4\u56de\u7ed3\u679c\u793a\u4f8b**\uff1a\r\n\r\n```json\r\n{\r\n \"status\": \"success\",\r\n \"data\": [\r\n {\r\n \"chunk_id\": 42,\r\n \"file_path\": \"/docs/install/docker.md\",\r\n \"chunk_num\": 2,\r\n \"total_chunks\": 5,\r\n \"similarity\": 0.89,\r\n \"content_preview\": \"## Docker\u5b89\u88c5\u6b65\u9aa4\\n\\n1. \u66f4\u65b0apt\u5305\u7d22\u5f15...\",\r\n \"content\": \"\u6587\u4ef6\u8def\u5f84: /docs/install/docker.md\\n\u5757 2/5\\n\\n## Docker\u5b89\u88c5\u6b65\u9aa4\\n\\n1. \u66f4\u65b0apt\u5305\u7d22\u5f15...\",\r\n \"last_modified\": \"2025-09-18T10:30:00Z\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\n#### 2. \u8bfb\u53d6\u5b8c\u6574\u6587\u4ef6\r\n\r\n```bash\r\nread_file \"/docs/install/docker.md\" max_chars=10000\r\n```\r\n\r\n#### 3. \u521b\u5efaMarkdown\u6587\u4ef6\r\n\r\n```bash\r\ncreate_markdown \"/notes/new_note.md\" \"# \u65b0\u7b14\u8bb0\\n\\n\u8fd9\u662f\u901a\u8fc7API\u521b\u5efa\u7684\u7b14\u8bb0\u5185\u5bb9\uff0c\u5c06\u81ea\u52a8\u8fdb\u884c\u5411\u91cf\u5316\u5904\u7406\u3002\"\r\n```\r\n\r\n## \u2699\ufe0f \u914d\u7f6e\u53c2\u6570\u8be6\u89e3\r\n\r\n| \u53c2\u6570\u540d | \u63cf\u8ff0 | \u9ed8\u8ba4\u503c |\r\n| --- | --- |---------------------------|\r\n| `WATCH_TOPICS` | \u76d1\u63a7\u4e3b\u9898\u4e0e\u76ee\u5f55\u6620\u5c04\uff08JSON\uff09 | `{\"\u9ed8\u8ba4\": [\"./watch_dir\"]}` |\r\n| `CHUNK_SIZE` | \u5206\u5757\u5927\u5c0f\uff08\u5b57\u7b26\uff09 | 4000 |\r\n| `CHUNK_OVERLAP` | \u5757\u91cd\u53e0\u5b57\u7b26\u6570 | 200 |\r\n| `EMBEDDING_MODEL` | \u5d4c\u5165\u6a21\u578b\u540d\u79f0 | text-embedding-ada-002 |\r\n| `EMBEDDING_DIM` | \u5d4c\u5165\u5411\u91cf\u7ef4\u5ea6 | 1024 |\r\n| `BATCH_SIZE` | \u6279\u5904\u7406\u5927\u5c0f | 5 |\r\n| `RETRY_ATTEMPTS` | API\u8c03\u7528\u91cd\u8bd5\u6b21\u6570 | 3 |\r\n| `RETRY_DELAY` | \u91cd\u8bd5\u5ef6\u8fdf\uff08\u79d2\uff09 | 5 |\r\n\r\n## \ud83d\udccb \u4f7f\u7528\u573a\u666f\r\n\r\n### 1. \u4e2a\u4eba\u77e5\u8bc6\u5e93\r\n\r\n- **\u81ea\u52a8\u7d22\u5f15**\uff1a\u76d1\u63a7\u7b14\u8bb0\u76ee\u5f55\uff0c\u65b0\u7b14\u8bb0\u81ea\u52a8\u52a0\u5165\u77e5\u8bc6\u5e93\r\n- **\u5feb\u901f\u68c0\u7d22**\uff1a\u901a\u8fc7\u5173\u952e\u8bcd\u5feb\u901f\u627e\u5230\u76f8\u5173\u7b14\u8bb0\u7247\u6bb5\r\n- **\u4e0a\u4e0b\u6587\u4fdd\u7559**\uff1a\u641c\u7d22\u7ed3\u679c\u5305\u542b\u5b8c\u6574\u6587\u4ef6\u8def\u5f84\u548c\u5757\u4f4d\u7f6e\r\n\r\n### 2. \u56e2\u961f\u6587\u6863\u7ba1\u7406\r\n\r\n- **\u7edf\u4e00\u68c0\u7d22**\uff1a\u8de8\u6587\u6863\u7c7b\u578b\u641c\u7d22\u56e2\u961f\u6240\u6709\u6587\u6863\r\n- **\u7248\u672c\u8ffd\u8e2a**\uff1a\u6587\u4ef6\u4fee\u6539\u81ea\u52a8\u66f4\u65b0\u5411\u91cf\uff0c\u4fdd\u6301\u5185\u5bb9\u6700\u65b0\r\n- **\u77e5\u8bc6\u5171\u4eab**\uff1a\u901a\u8fc7API\u96c6\u6210\u5230\u5185\u90e8\u7cfb\u7edf\uff0c\u5b9e\u73b0\u77e5\u8bc6\u5171\u4eab\r\n\r\n### 3. \u5185\u5bb9\u521b\u4f5c\u8f85\u52a9\r\n\r\n- **\u7d20\u6750\u6536\u96c6**\uff1a\u5feb\u901f\u67e5\u627e\u5f15\u7528\u8d44\u6599\u548c\u7075\u611f\r\n- **\u81ea\u52a8\u7b14\u8bb0**\uff1a\u4f7f\u7528`create_markdown`\u5de5\u5177\u81ea\u52a8\u5316\u7b14\u8bb0\u521b\u5efa\r\n- **\u5185\u5bb9\u4f18\u5316**\uff1a\u901a\u8fc7\u641c\u7d22\u76f8\u4f3c\u5185\u5bb9\uff0c\u4f18\u5316\u5199\u4f5c\u8868\u8fbe\r\n\r\n## \u2753 \u5e38\u89c1\u95ee\u9898\r\n\r\n### Q: \u5982\u4f55\u5904\u7406\u5927\u578bPDF\u6587\u4ef6\uff1f\r\n\r\nA: \u7cfb\u7edf\u4f1a\u81ea\u52a8\u5206\u5757\u5904\u7406\uff0c\u9ed8\u8ba4\u6bcf\u57574000\u5b57\u7b26\uff0c\u53ef\u901a\u8fc7`CHUNK_SIZE`\u8c03\u6574\u3002\u5bf9\u4e8e\u626b\u63cfPDF\uff0c\u5efa\u8bae\u914d\u7f6eMinerU API\u542f\u7528OCR\u3002\r\n\r\n### Q: \u670d\u52a1\u542f\u52a8\u5931\u8d25\u63d0\u793a\"pgvector\u672a\u5b89\u88c5\"\uff1f\r\n\r\nA: \u9700\u8981\u5728PostgreSQL\u4e2d\u5b89\u88c5pgvector\u6269\u5c55\uff1a\r\n\r\n```sql\r\nCREATE EXTENSION vector;\r\n```\r\n\r\n### Q: \u5982\u4f55\u63d0\u9ad8\u641c\u7d22\u51c6\u786e\u6027\uff1f\r\n\r\nA: \u53ef\u5c1d\u8bd5\uff1a\r\n\r\n- \u51cf\u5c0f`CHUNK_SIZE`\uff0c\u63d0\u9ad8\u5757\u7c92\u5ea6\r\n- \u4f7f\u7528\u66f4\u5177\u4f53\u7684\u641c\u7d22\u5173\u952e\u8bcd\r\n- \u8c03\u6574`top_k`\u53c2\u6570\u83b7\u53d6\u66f4\u591a\u7ed3\u679c\r\n\r\n## \ud83d\udcc4 \u8bb8\u53ef\u8bc1\r\n\r\n\u672c\u9879\u76ee\u57fa\u4e8eApache License 2.0\u5f00\u6e90\u8bb8\u53ef\u8bc1 - \u8be6\u89c1[LICENSE](LICENSE)\u6587\u4ef6\r\n\r\n## \ud83e\udd1d \u8d21\u732e\u4e0e\u53cd\u9988\r\n\r\n- \u9879\u76ee\u5730\u5740\uff1a[GitHub](https://github.com/928871247/files-vector-mcp-server)\r\n- \u95ee\u9898\u53cd\u9988\uff1a[Issue Tracker](https://github.com/928871247/files-vector-mcp-server/issues)\r\n- \u529f\u80fd\u5efa\u8bae\uff1a\u6b22\u8fce\u63d0\u4ea4PR\u6216Issue\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A FastMCP server for file vectorization and similarity search",
"version": "0.1.14",
"project_urls": {
"Bug Tracker": "https://github.com/928871247/files-vector-mcp-server/issues",
"Homepage": "https://github.com/928871247/files-vector-mcp-server"
},
"split_keywords": [
"mcp",
" vector-search",
" embeddings"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "629e5ec445e56e3f9d6ea1f9a16919af3857b2b0a921c7717cf96a66fbddfaa6",
"md5": "6d7e49cd857e740f78a76eb5c2477d55",
"sha256": "2c891e144368b2396231c1efdb09ae36b929e9203d597d52baba904a64edc044"
},
"downloads": -1,
"filename": "files_vector_mcp_server-0.1.14-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6d7e49cd857e740f78a76eb5c2477d55",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 28833,
"upload_time": "2025-09-19T00:44:03",
"upload_time_iso_8601": "2025-09-19T00:44:03.664141Z",
"url": "https://files.pythonhosted.org/packages/62/9e/5ec445e56e3f9d6ea1f9a16919af3857b2b0a921c7717cf96a66fbddfaa6/files_vector_mcp_server-0.1.14-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "0b0cf6b8396c20b94bd7a52ceb602ac9634735463040dc99a738e9e106669ed7",
"md5": "d790877bf377c2dded2ae0b94e6417b2",
"sha256": "54cde2f39dfde0dc9051b19366935a0956e81394c176fd18c8f4cf176488d052"
},
"downloads": -1,
"filename": "files_vector_mcp_server-0.1.14.tar.gz",
"has_sig": false,
"md5_digest": "d790877bf377c2dded2ae0b94e6417b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 27682,
"upload_time": "2025-09-19T00:44:05",
"upload_time_iso_8601": "2025-09-19T00:44:05.005603Z",
"url": "https://files.pythonhosted.org/packages/0b/0c/f6b8396c20b94bd7a52ceb602ac9634735463040dc99a738e9e106669ed7/files_vector_mcp_server-0.1.14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-19 00:44:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "928871247",
"github_project": "files-vector-mcp-server",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "files-vector-mcp-server"
}