联系人管理协议服务器

一个基于Model Context Protocol的联系人管理服务器,支持AI驱动的语义搜索和批量操作。

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

使用说明

c2 mcp

一种用于联系人管理的模型上下文协议(MCP)服务器,由 pglite (嵌入式Postgres/SQLite混合)和 没有 用于AI驱动的嵌入和语义搜索。

特性

  • MCP服务器:实现基于工具的自动化和代理集成的模型上下文协议。
  • 联系人管理:创建、读取、更新、删除、列出和搜索联系人。
  • 批量操作:批量创建、更新和删除联系人。
  • 语义搜索:使用向量嵌入和相似性搜索查找联系人(通过Ollama)。
  • 可配置的:数据库位置、AI基础URL和嵌入模型都是可配置的。

需求

  • 包子 (建议使用v1.2.18或更高版本)
  • 没有 在本地运行或通过HTTP访问(默认: http://localhost:11434)

安装

bun install

运行服务器

bun run index.ts

配置

您可以使用环境变量或命令行参数配置服务器:

  • DB_PATH 或 --db-path=... --数据库目录的路径(默认值: ./db 在存储目录中)
  • AI_BASE_URL 或 --ai-base-url=... -Ollama API的基本URL(默认值: http://localhost:11434/v1)
  • EMBEDDINGS_MODEL 或 --embeddings-model=... --要使用的嵌入模型(默认值: mxbai-embed-large)

例子:

DB_PATH=./mydb AI_BASE_URL=http://localhost:11434/v1 EMBEDDINGS_MODEL=mxbai-embed-large bun run index.ts

主要工具/端点

MCP服务器公开了以下工具:

  • create-contact --创建新联系人
  • get-contact --通过ID获取联系人
  • list-contacts --列出所有联系人(带页码)
  • search-contacts --按姓名、电子邮件或电话搜索联系人
  • update-contact --更新现有联系人
  • delete-contact --按ID删除联系人
  • semantic-search-contacts --基于嵌入的语义搜索
  • bulk-create-contacts --批量创建联系人
  • bulk-update-contacts --批量更新联系人
  • bulk-delete-contacts --批量删除联系人

发展

  • 该项目使用 毛毛雨 用于数据库访问和迁移。
  • 数据库迁移存储在 drizzle/ 目录,并在启动时自动运行。
  • 嵌入通过Ollama API生成并存储在数据库中用于语义搜索。

项目结构

  • index.ts --主入口点、服务器设置
  • src/contact-service.ts --联系人管理逻辑
  • src/database.ts --数据库设置(pglite)
  • src/embeddings.ts --嵌入式生成(Ollama)
  • src/context.ts --上下文和配置帮助程序
  • drizzle/ --数据库迁移
  • integration/, e2e/, src/*.test.ts --测试

许可证

麻省理工学院


此项目是使用创建的 bun init 在bun v1.2.18中。 包子 是一个快速的一体化JavaScript运行时。