用于与 Astra DB 交互的 Model Context Protocol (MCP) 服务器。MCP 通过允许大型语言模型(LLMs)作为代理与外部系统进行交互,扩展了这些模型的能力。
你需要有一个正在运行的 Astra DB 数据库。如果你还没有一个,你可以在这里创建一个免费的数据库:注册页面。在那里,你可以获取以下两项内容:
要了解如何获取这些内容,请参阅入门文档。
这里是如何将此服务器添加到你的 MCP 客户端中。
要在 Claude Desktop 中添加此服务器,请转到首选项 -> 开发者 -> 编辑配置,并在 claude_desktop_config.json 文件中添加以下 JSON 块:
{
"mcpServers": {
"astra-db-mcp": {
"command": "npx",
"args": ["-y", "@datastax/astra-db-mcp"],
"env": {
"ASTRA_DB_APPLICATION_TOKEN": "your_astra_db_token",
"ASTRA_DB_API_ENDPOINT": "your_astra_db_endpoint"
}
}
}
}
可选键空间配置:
默认情况下,此服务器使用底层 Astra DB 库中配置的键空间(通常是 default_keyspace)。如果你需要连接到特定的键空间,可以在上述 env 对象中添加 ASTRA_DB_KEYSPACE 变量,如下所示:
"env": {
"ASTRA_DB_APPLICATION_TOKEN": "your_astra_db_token",
"ASTRA_DB_API_ENDPOINT": "your_astra_db_endpoint",
"ASTRA_DB_KEYSPACE": "your_desired_keyspace"
}
Windows PowerShell 用户:
npx 是一个批处理命令,因此需要修改 JSON 如下:
"command": "cmd",
"args": ["/k", "npx", "-y", "@datastax/astra-db-mcp"],
要在 Cursor 中添加此服务器,请转到设置 -> Cursor 设置 -> MCP
从那里,你可以通过点击“+ 添加新 MCP 服务器”按钮来添加服务器,这会带你到一个 mcp.json 文件。
提示:存在一个代表全局 MCP 设置的
~/.cursor/mcp.json文件,以及一个特定于项目的.cursor/mcp.json文件。你可能希望将这个 MCP 服务器安装到项目特定的文件中。
添加与 Claude Desktop 指南中指示相同的 JSON。
或者,你可能会遇到一个向导,在那里你可以输入以下值(针对基于 Unix 的系统):
env ASTRA_DB_APPLICATION_TOKEN=your_astra_db_token ASTRA_DB_API_ENDPOINT=your_astra_db_endpoint npx -y @datastax/astra-db-mcp
注意:ASTRA_DB_KEYSPACE 是可选的。如果省略,则使用 Astra DB 库中配置的默认键空间。
添加后,你的编辑器将完全连接到你的 Astra DB 数据库。
该服务器提供了以下工具以与 Astra DB 进行交互:
GetCollections:获取数据库中的所有集合CreateCollection:在数据库中创建一个新的集合(支持向量)UpdateCollection:更新数据库中的现有集合DeleteCollection:从数据库中删除一个集合EstimateDocumentCount:获取集合中估计的文档数量ListRecords:列出数据库中集合中的记录GetRecord:通过 ID 获取集合中的特定记录CreateRecord:在集合中创建新的记录UpdateRecord:更新集合中的现有记录DeleteRecord:从集合中删除记录FindRecord:根据字段值在集合中查找记录FindDistinctValues:查找集合中特定字段的不同值BulkCreateRecords:一次创建多个记录BulkUpdateRecords:一次更新多个记录BulkDeleteRecords:一次删除多个记录VectorSearch:对向量嵌入执行相似性搜索HybridSearch:结合向量相似性搜索和文本搜索OpenBrowser:打开浏览器进行身份验证和设置HelpAddToClient:获取帮助将 Astra DB 客户端添加到你的 MCP 客户端Astra DB MCP 服务器现在包括强大的向量搜索能力,适用于 AI 应用:
对向量嵌入执行相似性搜索:
// 示例用法
const results = await VectorSearch({
collectionName: "my_vector_collection",
queryVector: [0.1, 0.2, 0.3, ...], // 你的嵌入向量
limit: 5, // 可选:返回的结果数量(默认:10)
minScore: 0.7, // 可选:最小相似度分数阈值
filter: { category: "article" } // 可选:额外的过滤条件
});
结合向量相似性搜索和文本搜索以获得更准确的结果:
// 示例用法
const results = await HybridSearch({
collectionName: "my_vector_collection",
queryVector: [0.1, 0.2, 0.3, ...], // 你的嵌入向量
textQuery: "气候变化", // 要搜索的文本查询
weights: { // 可选:混合搜索权重
vector: 0.7, // 向量相似性的权重(0.0-1.0)
text: 0.3 // 文本相关性的权重(0.0-1.0)
},
limit: 5, // 可选:返回的结果数量
fields: ["标题", "内容"] // 可选:要搜索的文本查询字段
});
CreateCollection 工具现在支持更多的向量配置选项:
// 示例用法
const result = await CreateCollection({
collectionName: "my_vector_collection",
vector: true, // 启用向量搜索
dimension: 1536, // 向量维度(例如,1536 用于 OpenAI 嵌入)
metric: "余弦" // 相似度度量:"余弦"、"欧几里得"或"点积"
});
新的 FindDistinctValues 工具允许你找到字段的独特值:
// 示例用法
const distinctValues = await FindDistinctValues({
collectionName: "my_collection",
field: "类别", // 要查找独特值的字段
filter: { active: true } // 可选:应用的过滤条件
});
批量操作现在使用本地批处理处理以提高性能:
// 示例:批量创建记录
const result = await BulkCreateRecords({
collectionName: "my_collection",
records: [
{ title: "记录 1", content: "内容 1" },
{ title: "记录 2", content: "内容 2" },
// ... 更多记录
]
});
// 示例:批量更新记录
const updateResult = await BulkUpdateRecords({
collectionName: "my_collection",
records: [
{ id: "record1", record: { title: "更新标题 1" } },
{ id: "record2", record: { title: "更新标题 2" } },
// ... 更多记录
]
});
// 示例:批量删除记录
const deleteResult = await BulkDeleteRecords({
collectionName: "my_collection",
recordIds: ["record1", "record2", "record3"]
});
服务器现在提供更详细的错误消息和错误代码,以便更容易诊断问题。
所有重要的更改将在此文件中记录:更新日志。 格式基于 Keep a Changelog,并且此项目遵循 语义化版本控制。
evals 包加载了一个 mcp 客户端,然后运行 index.ts 文件,因此无需在测试之间重新构建。你可以通过在 npx 命令前缀加载环境变量。完整的文档可以在此处找到:文档。
OPENAI_API_KEY=your-key npx mcp-eval evals.ts tools.ts