DynamoDB Read-Only MCP
DynamoDB MCP только для чтения
Сервер, который использует Model Context Protocol (MCP) для запроса баз данных AWS DynamoDB. Этот сервер позволяет LLM, таким как Клод, запрашивать данные DynamoDB с помощью запросов на естественном языке.
Функции
Этот сервер MCP предоставляет следующие возможности:
Инструменты управления таблицами :
list-tables: Просмотр списка всех таблиц DynamoDBdescribe-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: dbt Semantic Layer MCP Server
Установка и исполнение
Вы можете запустить его без установки, используя метод Run with NPX ниже.
Установка через Smithery
Чтобы автоматически установить DynamoDB Read-Only Server для Claude Desktop через Smithery :
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 Desktop
Чтобы использовать этот MCP-сервер с Claude Desktop, вам необходимо изменить файл конфигурации Claude Desktop.
Откройте файл конфигурации Claude Desktop:
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"
}
}
}
}Примеры использования
Вы можете задать Клоду такие вопросы:
«Можете ли вы сказать мне, какие таблицы есть в 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)подключается к Claude Desktop через протокол MCP.Во время подключения сервер отправляет клиенту информацию о поддерживаемых инструментах, ресурсах и подсказках.
2. Обработка запроса на инструмент
Когда пользователь спрашивает Клода что-то вроде «Покажи мне список таблиц 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.
Клод переводит этот результат в естественный язык и представляет его пользователю.
3. Обработка специальных параметров
Когда пользователь запрашивает «Расскажите мне структуру таблицы «Пользователи»»:
Клод определяет, что в этом запросе следует использовать инструмент
describe-table.Клод настраивает параметр как
{ 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 },
},
],
};
}
);Этот запрос используется, когда пользователь запрашивает «Покажите мне, как писать запросы для таблицы «Пользователи»».
Сводка потока данных
Пользователь делает запрос Клоду на естественном языке
Клод анализирует запрос и выбирает соответствующий инструмент/ресурс/подсказку MCP
Клиент MCP отправляет запрос на сервер в стандартизированном формате.
Сервер обрабатывает запрос и вызывает API AWS DynamoDB
DynamoDB возвращает результаты
Сервер преобразует результаты в формат MCP и отправляет их клиенту
Клод переводит результаты в естественный язык и представляет их пользователю.
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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