wikipedia-mcp-agent
by sadeghetemad
README.md
# š Wikipedia MCP Agent
> A conversational AI agent that searches and reads Wikipedia using the **Model Context Protocol (MCP)**, **LangGraph**, and **AWS Bedrock (Claude Sonnet)**.





---
## Overview
This project wires together three modern AI infrastructure pieces:
1. **MCP (Model Context Protocol)** ā a standard way to expose tools, prompts, and resources to an LLM
2. **LangGraph** ā a graph-based agent framework for multi-step reasoning with tool calls
3. **AWS Bedrock** ā managed LLM inference using Anthropic's Claude Sonnet
The agent launches an MCP server as a subprocess, dynamically loads its Wikipedia tools at runtime, and runs a stateful chat loop where the LLM can call tools as needed before answering.
---
## Architecture
```
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā mcp_client.py ā
ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā
ā ā LangGraph StateGraph ā ā
ā ā ā ā
ā ā START āāāŗ chat_node āāāŗ tool_node āāā ā ā
ā ā ā² ā ā ā
ā ā āāāāāāāāāāāāāāāāāāāāāā ā ā
ā ā ā END ā ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāā ā
ā ā tool calls ā
ā stdin/stdout (MCP stdio transport) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāā
ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāā¼āāāāāāāāāāāāāāāāāāāāāāāāā
ā mcp_server.py ā
ā ā
ā Tools search_wikipedia ā
ā list_wikipedia_sections ā
ā get_section_content ā
ā ā
ā Prompts highlight_sections_prompt ā
ā ā
ā Resources suggested_titles ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā
wikipedia Python library
```
---
## Features
### Tools
| Tool | Description |
|------|-------------|
| `search_wikipedia` | Search Wikipedia and return the summary + URL of the top result |
| `list_wikipedia_sections` | List all section titles of a Wikipedia article |
| `get_section_content` | Fetch the full text of a specific section |
### Prompts
| Prompt | Description |
|--------|-------------|
| `highlight_sections_prompt` | Ask the LLM to pick the 3ā5 most important sections of an article and explain why |
### Resources
| Resource | Description |
|----------|-------------|
| `suggested_titles` | Reads a local `suggested_titles.txt` file with topic suggestions |
---
## Getting Started
### Prerequisites
- Python 3.10+
- AWS account with Bedrock access enabled for `anthropic.claude-sonnet-4-6` in `eu-west-2`
### Installation
```bash
# Clone the repo
git clone https://github.com/sadeghetemad/wikipedia-mcp-agent.git
cd wikipedia-mcp-agent
# Create and activate a virtual environment
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # macOS / Linux
# Install dependencies
pip install -r requirements.txt
```
### AWS Credentials
Configure your credentials via the AWS CLI or environment variables:
```bash
aws configure
```
Or manually:
```bash
export AWS_ACCESS_KEY_ID=your_key
export AWS_SECRET_ACCESS_KEY=your_secret
export AWS_DEFAULT_REGION=eu-west-2
```
Make sure your IAM user/role has the `bedrock:InvokeModel` permission.
---
## Usage
```bash
python mcp_client.py
```
You will see:
```
Wikipedia MCP agent is ready.
Type a question or use one of the slash commands below:
/prompts - list available prompt templates
/prompt <name> "arg1" ... - run a prompt template
/resources - list available resources
/resource <name or index> - view a resource
exit / quit / q - quit
```
### Example session
```
You: What is quantum entanglement?
AI: Quantum entanglement is a physical phenomenon where two or more particles ...
You: /prompts
Available Prompts:
highlight_sections_prompt (topic)
You: /prompt highlight_sections_prompt "Black hole"
=== Prompt Result ===
⢠Formation ā explains how black holes arise from stellar collapse
⢠Event horizon ā the defining boundary of no return
...
You: /resources
Available Resources:
[1] suggested_titles
You: /resource 1
=== Resource Text ===
Artificial intelligence
Large language model
...
```
### Optional: `suggested_titles.txt`
Create this file in the project root (one topic per line) to populate the `suggested_titles` resource:
```
Artificial intelligence
Large language model
Model Context Protocol
Quantum computing
```
---
## Project Structure
```
wikipedia-mcp-agent/
āāā mcp_server.py # FastMCP server ā tools, prompts, resources
āāā mcp_client.py # LangGraph agent + interactive chat loop
āāā requirements.txt # Pinned Python dependencies
āāā suggested_titles.txt # (optional) topic suggestions for the resource
āāā README.md
```
---
## Tech Stack
| Layer | Library |
|-------|---------|
| LLM | [AWS Bedrock](https://aws.amazon.com/bedrock/) via `langchain-aws` |
| Agent framework | [LangGraph](https://github.com/langchain-ai/langgraph) |
| Tool protocol | [MCP](https://modelcontextprotocol.io) via `mcp` + `langchain-mcp-adapters` |
| Wikipedia data | [`wikipedia`](https://pypi.org/project/wikipedia/) |
---
## License
MIT
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues