wikipedia-mcp-agent

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.

Category
Visit Server

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).

Python LangGraph MCP AWS Bedrock License


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

# 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured