Skip to main content
Glama
gayatrianne

langgraph-mcp-aws-dynamodb-agent

by gayatrianne

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_id

  • Speichert: Name, E-Mail, Tarif, monatliche Gebühr, Kontostatus, fälliger Saldo, Mitglied seit

GalaxyTelecom_SupportTickets

  • Partitionsschlüssel: customer_id, Sortierschlüssel: ticket_id

  • Speichert: 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
└── .gitignore

Einrichtung 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 key

Umgebungsvariablen

# 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.3

DynamoDB-Tabellen befüllen

Einmalig ausführen, bevor der Agent gestartet wird:

python dynamo/seed_data.py

Dies 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.py

Geben 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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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.

View all MCP Connectors

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/gayatrianne/langgraph-mcp-aws-dynamodb-agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server