DynamoDB Read-Only MCP
DynamoDB 只读 MCP
一个利用模型上下文协议 (MCP) 查询 AWS DynamoDB 数据库的服务器。该服务器允许像 Claude 这样的法学硕士 (LLM) 通过自然语言请求查询 DynamoDB 数据。
特征
该 MCP 服务器提供以下功能:
表管理工具:
list-tables:查看所有 DynamoDB 表的列表describe-table:查看特定表的详细信息
数据查询工具:
scan-table:扫描表的全部或部分数据query-table:在表中搜索符合特定条件的数据paginate-query-table:检索符合特定条件的跨页数据get-item:检索具有特定键的项目count-items:计算表中的项目数
资源:
dynamodb-tables-info:为所有表提供元数据的资源dynamodb-table-schema:提供特定表的架构信息的资源
提示:
dynamodb-query-help:编写 DynamoDB 查询的帮助提示
Related MCP server: Azure Cosmos DB MCP Server
安装和执行
您可以使用下面的使用Run with NPX方法无需安装即可运行它。
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 DynamoDB 只读服务器:
npx -y @smithery/cli install @jjikky/dynamo-readonly-mcp --client claude安装
克隆存储库:
git clone https://github.com/jjikky/dynamo-readonly-mcp.git cd dynamo-readonly-mcp安装所需的软件包:
npm install创建一个
.env文件并设置您的 AWS 凭证:AWS_ACCESS_KEY_ID=your_access_key AWS_SECRET_ACCESS_KEY=your_secret_key AWS_REGION=your_region
构建并运行
npm run build
npm start连接到 Claude 桌面
要将此 MCP 服务器与 Claude Desktop 一起使用,您需要修改 Claude Desktop 配置文件。
打开Claude桌面配置文件:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
添加服务器配置如下:
{ "mcpServers": { "dynamodb-readonly": { "command": "node", "args": ["/absolute-path/dynamo-readonly-mcp/dist/index.js"], "env": { "AWS_ACCESS_KEY_ID": "your_access_key", "AWS_SECRET_ACCESS_KEY": "your_secret_key", "AWS_REGION": "your_region" } } } }重新启动 Claude Desktop。
使用 NPX 运行
您还可以使用npx运行此服务器,而无需全局安装:
{
"mcpServers": {
"dynamodb-readonly": {
"command": "npx",
"args": ["-y", "dynamo-readonly-mcp"],
"env": {
"AWS_ACCESS_KEY_ID": "your_access_key",
"AWS_SECRET_ACCESS_KEY": "your_secret_key",
"AWS_REGION": "your_region"
}
}
}
}使用示例
您可以向 Claude 询问以下问题:
“您能告诉我 DynamoDB 中有哪些表吗?”
“解释用户表的结构”
“在‘用户’表中查找 groupId 为‘0lxp4paxk7’ 的用户数量”
建筑学
该MCP服务器由以下分层结构组成:
客户端界面(Claude Desktop) - 用户与 LLM 之间的交互
MCP协议层-提供标准化的消息交换方法
DynamoDB 服务器- 实现与 DynamoDB 交互的功能
AWS SDK - 与 AWS DynamoDB 服务通信
关键运行机制
1.初始化与连接
当服务器启动时,会发生以下过程:
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error('DynamoDB read-only MCP server is running...');
}StdioServerTransport通过标准输入/输出建立通信通道。server.connect(transport)通过 MCP 协议连接到 Claude Desktop。在连接期间,服务器会向客户端发送有关支持的工具、资源和提示的信息。
2. 工具请求处理
当用户向 Claude 询问“显示 DynamoDB 表的列表”时:
克劳德分析了这个请求并调用了
list-tables工具。该请求通过MCP协议发送到服务器。
服务器执行相应的工具处理程序:
server.tool('list-tables', 'Gets a list of all DynamoDB tables', {}, async () => {
try {
const tables = await listTables();
return {
content: [{ type: 'text', text: JSON.stringify(tables, null, 2) }],
};
} catch (error) {
return { isError: true, content: [{ type: 'text', text: `Error: ${error.message}` }] };
}
});将结果通过MCP协议返回给Claude。
Claude 将此结果处理成自然语言并呈现给用户。
3. 具体参数处理
当用户请求“告诉我用户表的结构”时:
Claude 确定此请求应该使用
describe-table工具。Claude 将参数配置为
{ tableName: "Users" }。此信息被发送到 MCP 服务器:
server.tool(
'describe-table',
'Gets detailed information about a DynamoDB table',
{
tableName: z.string().describe('Name of the table to get detailed information for'),
},
async ({ tableName }) => {
// Query table information using the tableName parameter
const tableInfo = await describeTable(tableName);
// Return results
}
);这里, z.string()使用 Zod 库来验证参数。
4.资源处理
资源是另一个提供只读数据的 MCP 功能:
server.resource('dynamodb-tables-info', 'DynamoDB table information', async () => {
// Create and return resource data
const tables = await listTables();
const tablesInfo = await Promise.all(/* Query table information */);
return {
contents: [
{
uri: 'dynamodb://tables-info',
text: JSON.stringify(tablesInfo, null, 2),
mimeType: 'application/json',
},
],
};
});克劳德访问资源并将其用作上下文信息。
5. 及时处理
MCP服务器可以提供针对特定任务的提示模板:
server.prompt(
'dynamodb-query-help',
'A prompt that helps write DynamoDB queries',
{
tableName: z.string().describe('Table name to query'),
queryType: z.enum(['basic', 'advanced']).default('basic'),
},
async ({ tableName, queryType }) => {
// Generate prompt content
return {
messages: [
{
role: 'user',
content: { type: 'text', text: helpContent },
},
],
};
}
);当用户请求“向我展示如何为用户表编写查询”时使用此提示。
数据流摘要
用户使用自然语言向 Claude 发出请求
Claude 分析请求并选择适当的 MCP 工具/资源/提示
MCP 客户端以标准格式向服务器发送请求
服务器处理请求并调用 AWS DynamoDB API
DynamoDB 返回结果
服务器将结果转换为MCP格式并发送给客户端
Claude 将结果处理成自然语言并呈现给用户
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA server that enables interaction with PostgreSQL, MySQL, MariaDB, or SQLite databases through Claude Desktop using natural language queries.1
- AlicenseBqualityDmaintenanceA server that enables LLMs like Claude to interact with Azure Cosmos DB databases through natural language queries, acting as a translator between AI assistants and database systems.43MIT
- AlicenseCqualityAmaintenanceA server that enables LLMs (like Claude and VSCode Copilot) to interact with Azure Cosmos DB data through natural language queries, acting as a translator between AI assistants and your database.3243MIT
- AlicenseNot gradedqualityDmaintenanceThis server provides database access capabilities to Claude, supporting SQLite, SQL Server, PostgreSQL, and MySQL databases.853MIT
Related MCP Connectors
GibsonAI MCP server: manage your databases with natural language
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jjikky/dynamo-readonly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server