langgraph-mcp-aws-dynamodb-agent
LangGraph MCP AWS DynamoDB CRM Agent
Galaxy Telecom — standardisierte KI-Tool-Integration über Model Context Protocol
Ein produktionsreifer KI-Agent, der die MCP-Integration (Model Context Protocol) mit AWS DynamoDB demonstriert — ein LangGraph-Agent wird über ein standardisiertes Tool-Protokoll statt über maßgeschneiderte Sonderintegrationen mit Live-CRM-Daten verbunden.
📄 Portfoliodokument (PDF) — vollständige Ausarbeitung mit Architektur, AWS-DynamoDB-Einrichtung und Beispielinteraktionen
Überblick
Traditionelle KI-Agenten, die CRM-Daten benötigen, erfordern fest verdrahtete Integrationen — individueller Code für jedes externe System, eng an die Agentenlogik gekoppelt. Dieses Projekt demonstriert einen besseren Ansatz: Der Agent verbindet sich zur Laufzeit mit einem Python-MCP-Server, entdeckt verfügbare Tools dynamisch und ruft sie ab, um Live-Kundenkontodaten und Ticketdaten aus AWS DynamoDB zu erhalten — ohne fest verdrahtete Integrationslogik im Agenten.
Related MCP server: Agorus MCP Server
Was ist MCP?
MCP (Model Context Protocol) ist ein von Anthropic eingeführter offener Standard, der definiert, wie KI-Agenten sich mit externen Tools und Datenquellen verbinden. Es verhält sich zu KI-Agenten wie REST-APIs zu Webservices — ein universeller Vertrag, der Interoperabilität ohne Spezialadapter für jede Integration ermöglicht.
Die zentrale Fähigkeit ist die Tool-Erkennung zur Laufzeit. Der Agent weiß beim Start nicht, welche Tools existieren. Er verbindet sich mit dem MCP-Server und fragt: „Was kannst du?" Der Server antwortet mit Tool-Namen, Beschreibungen und Eingabeschemas. Der Agent entscheidet dann anhand der Kundenanfrage, welche Tools er aufruft.
Architektur
Customer CLI Input
│
▼
┌─────────────────────┐
│ LangGraph Agent │ ← ReAct pattern, Claude Haiku (Anthropic API)
│ (crm_agent.py) │
└──────────┬──────────┘
│ MCP protocol — stdio transport
│ Runtime tool discovery via get_tools()
▼
┌─────────────────────┐
│ MCP Server │ ← FastMCP, Python
│ (server.py) │
│ │
│ get_customer_ │ ← queries CustomerAccounts table
│ account() │
│ │
│ get_open_ │ ← queries SupportTickets table
│ tickets() │
└──────────┬──────────┘
│ boto3
▼
┌─────────────────────┐
│ AWS DynamoDB │ ← eu-west-1
│ │
│ GalaxyTelecom_ │
│ CustomerAccounts │
│ │
│ GalaxyTelecom_ │
│ SupportTickets │
└─────────────────────┘MCP-Tooldefinition
Tools werden auf dem MCP-Server mit dem @server.tool()-Dekorator registriert.
Der Agent hat keinerlei Kenntnis dieser Funktionen — er erhält ihre Definitionen
dynamisch über das Protokoll zur Laufzeit.
@server.tool()
def get_customer_account(customer_id: str) -> str:
"""
Retrieve a Galaxy Telecom customer account from DynamoDB.
Returns account details including plan, status, and balance due.
"""
...
@server.tool()
def get_open_tickets(customer_id: str) -> str:
"""
Retrieve all open support tickets for a Galaxy Telecom customer.
Returns a list of tickets with issue type, description, status and priority.
"""
...Das Ersetzen von DynamoDB durch Salesforce oder Dynamics erfordert lediglich eine neue MCP-Serverimplementierung. Der Agentencode bleibt vollständig unverändert — was den Portabilitätsvorteil des Protokolls demonstriert.
AWS-DynamoDB-Tabellen
GalaxyTelecom_CustomerAccounts
Partitionsschlüssel:
customer_idSpeichert: Name, E-Mail, Tarif, monatliche Gebühr, Kontostatus, fälliger Saldo, Mitglied seit
GalaxyTelecom_SupportTickets
Partitionsschlüssel:
customer_id, Sortierschlüssel:ticket_idSpeichert: Problemtyp, Beschreibung, Status, Erfassungsdatum, zugewiesenes Team, Priorität
Zusammengesetzter Schlüssel ermöglicht das Abrufen aller Tickets eines Kunden in einer einzigen Abfrage
Beispielinteraktionen
Überfälliges Konto mit offenen Tickets (C001)
Customer ID : C001
Message : Hi, I wanted to check on my account and see if there are any issues.
[MCP] Tools discovered: ['get_customer_account', 'get_open_tickets']
Response: Hi John, I can see your account is overdue with a balance of £47.50.
You have 2 open tickets — a billing query (T001, medium priority) and
broadband dropouts (T002, high priority, in progress with Technical Support)...Aktives Konto, bestehendes technisches Ticket (C002)
Customer ID : C002
Message : I have been having some signal issues at home, can you help?
Response: Hello Sarah! I can see you're on our EliteMax plan with no balance due.
You've already raised ticket T003 regarding weak 5G signal — an engineer
visit has been requested, marked medium priority...Ungültige Kunden-ID — saubere Fehlerbehandlung
Customer ID : 99
Message : I have been having some signal issues at home, can you help?
Response: I'm unable to locate a Galaxy Telecom account associated with
Customer ID 99. The ID may have been entered incorrectly...Technologie-Stack
Komponente | Technologie |
Agenten-Orchestrierung | LangGraph (ReAct-Muster) |
LLM-Framework | LangChain |
LLM-Anbieter | Anthropic Claude Haiku API |
MCP-Protokoll | Model Context Protocol (FastMCP) |
MCP-Adapter | langchain-mcp-adapters |
CRM-Datenspeicher | AWS DynamoDB (eu-west-1) |
AWS-SDK | boto3 |
Sprache | Python 3.11+ |
Projektstruktur
langgraph-mcp-aws-dynamodb-agent/
├── agent/
│ ├── __init__.py
│ └── crm_agent.py # LangGraph ReAct agent — connects to MCP server
├── dynamo/
│ ├── __init__.py
│ └── seed_data.py # Creates DynamoDB tables and seeds mock CRM data
├── mcp_server/
│ ├── __init__.py
│ └── server.py # MCP server — exposes CRM tools backed by DynamoDB
├── main.py # Interactive CLI entry point
├── requirements.txt
├── .env.example # Environment variable template
└── .gitignoreEinrichtung und Installation
Voraussetzungen
Python 3.11+
Anthropic-API-Schlüssel
AWS-Konto mit konfigurierter CLI (
aws configure)IAM-Benutzer mit Lese-/Schreibberechtigungen für DynamoDB
Installation
# Clone the repository
git clone https://github.com/gayatrianne/langgraph-mcp-aws-dynamodb-agent.git
cd langgraph-mcp-aws-dynamodb-agent
# Create and activate virtual environment
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # macOS/Linux
# Install dependencies
pip install -r requirements.txt
# Configure environment variables
cp .env.example .env
# Edit .env and add your Anthropic API keyUmgebungsvariablen
# Anthropic
ANTHROPIC_API_KEY=your_key_here
# AWS — credentials come from AWS CLI profile (aws configure)
AWS_REGION=eu-west-1
# DynamoDB table names
CUSTOMER_TABLE=GalaxyTelecom_CustomerAccounts
TICKETS_TABLE=GalaxyTelecom_SupportTickets
# LLM Configuration
CLAUDE_MODEL=claude-haiku-4-5-20251001
CLAUDE_TEMPERATURE=0.3DynamoDB-Tabellen befüllen
Einmalig ausführen, bevor der Agent gestartet wird:
python dynamo/seed_data.pyDies erstellt beide DynamoDB-Tabellen in eu-west-1 und befüllt sie mit Beispieldaten für Galaxy-Telecom-Kunden und Support-Tickets.
Ausführen
python main.pyGeben Sie eine Kunden-ID (C001, C002, C003, C004) und eine Support-Nachricht ein. Der Agent erkennt MCP-Tools, fragt DynamoDB ab und liefert eine personalisierte Antwort auf Basis der Live-CRM-Daten.
Zentrale Designentscheidungen
Tool-Erkennung zur Laufzeit über MCP
Der Agent ruft zur Laufzeit await client.get_tools() auf — er weiß nicht,
welche Tools existieren, bis er den MCP-Server fragt. Dies ist der zentrale
Protokollvorteil: Der Agent ist von der Implementierung entkoppelt.
Saubere Fehlerbehandlung Ungültige Kunden-IDs liefern strukturiertes Fehler-JSON vom MCP-Server. Der Agent interpretiert dies natürlich und antwortet hilfreich, ohne dem Kunden technische Details preiszugeben.
MCP-Portabilität
Das Ersetzen von DynamoDB durch Salesforce, Dynamics oder ein beliebiges anderes
CRM erfordert nur eine neue MCP-Serverimplementierung. Der LangGraph-Agentencode in
crm_agent.py bleibt vollständig unverändert — der Agent ist durch die Protokollschicht
von der Datenquelle entkoppelt.
AWS-DynamoDB-Datenmodell CustomerAccounts verwendet einen einzelnen Partitionsschlüssel (customer_id). SupportTickets verwendet einen zusammengesetzten Schlüssel (customer_id + ticket_id) — so kann eine einzige Abfrage alle Tickets eines Kunden zurückgeben, was reale CRM-Datenzugriffsmuster widerspiegelt.
Demonstrierte Fähigkeiten
Model Context Protocol (MCP) — standardisierte KI-Tool-Integration
Tool-Erkennung zur Laufzeit — Agent erkennt Tools dynamisch, keine Festverdrahtung
LangGraph-Agenten-Orchestrierung — ReAct-Muster mit externem Tool-Aufruf
AWS DynamoDB — NoSQL-CRM-Datenspeicher mit Partitions- und Sortierschlüsseln
boto3 — AWS-SDK für Python
FastMCP — Python-MCP-Server-Framework
Saubere Fehlerbehandlung — strukturierte MCP-Fehlerantworten
Externalisierte Konfiguration — Modell und Region über Umgebungsvariablen
Autorin
Gayatri Anne KI- und Cloud-Architektin | 18+ Jahre Enterprise-IT
Ich entwickle KI-gestützte Automatisierungssysteme, die manuelle Arbeit aus Geschäftsprozessen eliminieren — durch die Kombination von agentischen Workflows, großen Sprachmodellen und Cloud-Integration für produktionsreife Lösungen.
Zertifizierungen: Azure Solutions Architect Expert | Azure AI Engineer Associate | Python PCAP | TOGAF Foundation
GitHub: gayatrianne
This server cannot be installed
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
- AlicenseAqualityFmaintenanceA Model Context Protocol server implementation that enables Claude to perform AWS operations on S3 and DynamoDB services through natural language commands.23127MIT

Agorus MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceMCP server for the Agorus AI agent marketplace, exposing API operations as tools for LLMs to discover, contract, and interact with agents and services.15MIT- AlicenseNot gradedqualityDmaintenanceModel Context Protocol server that standardizes tool discovery, execution, and context management for AI applications.MIT
- AlicenseBqualityDmaintenanceA high-performance Model Context Protocol (MCP) server that provides seamless integration with Amazon DataZone services. This server enables AI assistants and applications to interact with Amazon DataZone APIs through a standardized interface.496Apache 2.0
Related MCP Connectors
MCP server exposing the Backtest360 engine API as tools for AI agents.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
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/gayatrianne/langgraph-mcp-aws-dynamodb-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server