Astra DB MCP 服务器
一个用于与Astra DB交互的模型上下文协议(MCP)服务器。MCP通过允许大型语言模型(LLMs)作为代理与外部系统进行交互,扩展了它们的功能。
先决条件
您需要有一个正在运行的Astra DB数据库。如果您还没有,可以创建一个免费的数据库 这里从那里,你可以得到两样你需要的东西:
- 一个Astra DB应用程序令牌
- Astra DB API 端点
要了解如何获取这些,请 阅读入门文档。
向MCP客户端添加内容
以下是将此服务器添加到您的MCP客户端的方法。
Claude Desktop(可译为“Claude桌面版”)
要添加这个到 Claude Desktop(可译为“Claude桌面版”或保持原样,根据上下文判断是否需要具体化为“Claude桌面应用程序”等),前往“偏好设置”->“开发者”->“编辑配置”,并将这个JSON数据块添加到 claude_desktop_config.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)。 如果你需要连接到特定的键空间,你可以添加 ASTRA_DB_KEYSPACE 变量到 env 上面的对象,像这样:
"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"],光标
要将此添加到 光标,进入设置 -> 光标设置 -> MCP
从那里,您可以点击“+ 添加新MCP服务器”按钮来添加服务器,之后您应该会被带到一个页面 mcp.json 文件。
小贴士有~/.cursor/mcp.json这代表了您的全局MCP设置,以及一个项目特定的(设置/配置).cursor/mcp.json文件 这是特定于项目的。您可能希望将这个MCP服务器安装到项目专用的文件中。
按照Claude桌面版说明中所示,添加相同的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 应用程序提供了强大的向量搜索功能:
向量搜索
对向量嵌入执行相似性搜索:
// Example usage
const results = await VectorSearch({
collectionName: "my_vector_collection",
queryVector: [0.1, 0.2, 0.3, ...], // Your embedding vector
limit: 5, // Optional: Number of results to return (default: 10)
minScore: 0.7, // Optional: Minimum similarity score threshold
filter: { category: "article" } // Optional: Additional filter criteria
});混合搜索
将向量相似度搜索与文本搜索相结合,以获得更准确的结果:
// Example usage
const results = await HybridSearch({
collectionName: "my_vector_collection",
queryVector: [0.1, 0.2, 0.3, ...], // Your embedding vector
textQuery: "climate change", // Text query to search for
weights: { // Optional: Weights for hybrid search
vector: 0.7, // Weight for vector similarity (0.0-1.0)
text: 0.3 // Weight for text relevance (0.0-1.0)
},
limit: 5, // Optional: Number of results to return
fields: ["title", "content"] // Optional: Fields to search in for text query
});增强型收藏创建
这个(或“该”) CreateCollection 该工具现在支持更多的向量配置选项:
// Example usage
const result = await CreateCollection({
collectionName: "my_vector_collection",
vector: true, // Enable vector search
dimension: 1536, // Vector dimension (e.g., 1536 for OpenAI embeddings)
metric: "cosine" // Similarity metric: "cosine", "euclidean", or "dot_product"
});查找唯一值
新的 FindDistinctValues 该工具允许您为字段查找唯一值:
// Example usage
const distinctValues = await FindDistinctValues({
collectionName: "my_collection",
field: "category", // Field to find distinct values for
filter: { active: true } // Optional: Filter to apply
});批量操作优化
批量操作现在使用原生批处理以提高性能:
// Example: Bulk create records
const result = await BulkCreateRecords({
collectionName: "my_collection",
records: [
{ title: "Record 1", content: "Content 1" },
{ title: "Record 2", content: "Content 2" },
// ... more records
]
});
// Example: Bulk update records
const updateResult = await BulkUpdateRecords({
collectionName: "my_collection",
records: [
{ id: "record1", record: { title: "Updated Title 1" } },
{ id: "record2", record: { title: "Updated Title 2" } },
// ... more records
]
});
// Example: Bulk delete records
const deleteResult = await BulkDeleteRecords({
collectionName: "my_collection",
recordIds: ["record1", "record2", "record3"]
});增强的错误处理
现在,服务器提供了包含错误代码的更详细错误信息,以便更容易地诊断问题。
更新日志
此项目的所有重大变更都将记录在 这个文件。 该格式基于 维护变更日志,并且这个项目坚持遵循 语义化版本控制.
运行评估(或“执行评估”)
\evals\包会加载一个mcp客户端,然后该客户端运行\index.ts\文件,因此在测试之间无需重新构建。您可以通过在\npx\命令前添加前缀来加载环境变量。完整的文档可以在此处找到 在这里。
OPENAI_API_KEY=your-key npx mcp-eval evals.ts tools.ts❤️ 贡献者

徽章


