wikipedia-mcp-agent
Enables searching and reading Wikipedia articles through tools like search, section listing, and content retrieval. Supports prompt templates and resource suggestions for topic exploration.
README
š 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:
- MCP (Model Context Protocol) ā a standard way to expose tools, prompts, and resources to an LLM
- LangGraph ā a graph-based agent framework for multi-step reasoning with tool calls
- 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-6ineu-west-2
Installation
# 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:
aws configure
Or manually:
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
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 via langchain-aws |
| Agent framework | LangGraph |
| Tool protocol | MCP via mcp + langchain-mcp-adapters |
| Wikipedia data | wikipedia |
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.