Skip to main content
Glama

MCP Wikipedia Server

by kaman05010
README.mdโ€ข6.74 kB
# MCP Wikipedia Server A production-ready Model Context Protocol (MCP) server that provides Wikipedia search and content retrieval tools using FastMCP and Python 3.11. [![Python 3.11](https://img.shields.io/badge/python-3.11-blue.svg)](https://www.python.org/downloads/) [![MCP](https://img.shields.io/badge/MCP-Compatible-green.svg)](https://modelcontextprotocol.io/) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ## ๐Ÿš€ Quick Start ```bash # 1. Set up environment (one-time setup) ./setup.sh # 2. Start the server source .venv311/bin/activate cd src/mcp_server && python mcp_server.py # 3. Test with example client python example_client.py ``` ## ๐ŸŽฏ Features - **Wikipedia Search**: Find articles with intelligent search and get comprehensive summaries - **Section Listing**: Extract all section titles from any Wikipedia article - **Content Retrieval**: Get specific section content with proper formatting - **MCP Protocol**: Full Model Context Protocol compatibility for AI assistant integration - **FastMCP Framework**: Built on the efficient FastMCP library for optimal performance - **Python 3.11**: Modern Python with latest features and performance improvements ## ๐Ÿ“š Documentation | Document | Description | |----------|-------------| | [๐Ÿ“– Complete Guide](GUIDE.md) | Detailed setup, usage, and development instructions | | [โšก Quick Reference](QUICK_REF.md) | Common commands and tool summaries | | [๐Ÿ”ง Setup Script](setup.sh) | Automated environment setup and verification | | [๐Ÿ’ก Example Client](example_client.py) | Sample usage and integration examples | ## ๐Ÿ› ๏ธ Available Tools | Tool | Purpose | Example Usage | |------|---------|--------------| | `fetch_wikipedia_info` | Search Wikipedia and get article summaries | Search for "Python programming" | | `list_wikipedia_sections` | Get all section titles from an article | List sections of "Machine Learning" | | `get_section_content` | Retrieve specific section content | Get "History" section from "Artificial Intelligence" | ## ๐Ÿ—๏ธ Project Structure ``` MCPClientServer/ โ”œโ”€โ”€ ๐Ÿ“ src/mcp_server/ # Core server implementation โ”‚ โ”œโ”€โ”€ mcp_server.py # Main MCP Wikipedia server โ”‚ โ””โ”€โ”€ mcp_client.py # Example MCP client โ”œโ”€โ”€ ๐Ÿ“ tests/ # Comprehensive test suite โ”‚ โ”œโ”€โ”€ test_server.py # Unit tests (pytest) โ”‚ โ”œโ”€โ”€ test_integration.py # Integration tests โ”‚ โ”œโ”€โ”€ test_performance.py # Performance benchmarks โ”‚ โ”œโ”€โ”€ test_mcp_compliance.py # MCP protocol compliance โ”‚ โ”œโ”€โ”€ quick_test.py # Fast validation script โ”‚ โ”œโ”€โ”€ run_tests.py # Unified test runner โ”‚ โ””โ”€โ”€ README.md # Testing documentation โ”œโ”€โ”€ ๐Ÿ“ .venv311/ # Python 3.11 virtual environment โ”œโ”€โ”€ ๐Ÿ”ง setup.sh # Automated setup script โ”œโ”€โ”€ ๐Ÿ’ก example_client.py # Usage examples and demos โ”œโ”€โ”€ ๐Ÿ“– GUIDE.md # Complete documentation โ”œโ”€โ”€ โšก QUICK_REF.md # Quick reference โ”œโ”€โ”€ ๐Ÿ“„ pytest.ini # Test configuration โ”œโ”€โ”€ ๐Ÿ“„ requirements-test.txt # Test dependencies โ””โ”€โ”€ ๐Ÿ“„ pyproject.toml # Project configuration ``` ## ๐Ÿšฆ Prerequisites - **macOS** (tested on Apple Silicon and Intel) - **Python 3.11+** (installed via pyenv recommended) - **Git** (for version control) ## ๐Ÿ“ฆ Installation Options ### Option 1: Automated Setup (Recommended) ```bash chmod +x setup.sh ./setup.sh ``` ### Option 2: Manual Setup ```bash # Set up Python 3.11 environment pyenv install 3.11.10 pyenv local 3.11.10 # Create and activate virtual environment python -m venv .venv311 source .venv311/bin/activate # Install dependencies pip install --upgrade pip pip install wikipedia mcp fastmcp ``` ## ๐Ÿ”Œ Integration Examples ### With Claude Desktop (MCP Client) ```json { "mcpServers": { "wikipedia": { "command": "python", "args": ["/path/to/MCPClientServer/src/mcp_server/mcp_server.py"], "env": { "PYTHONPATH": "/path/to/MCPClientServer/.venv311/lib/python3.11/site-packages" } } } } ``` ### Direct Python Usage ```python from mcp_client import WikipediaClient client = WikipediaClient() result = await client.search_wikipedia("Artificial Intelligence") print(result) ``` ## ๐Ÿงช Testing ### Quick Testing ```bash # Fast validation (10 seconds) python tests/quick_test.py # Comprehensive test suite (5 minutes) python tests/run_tests.py ``` ### Advanced Testing ```bash # Install test dependencies pip install -r requirements-test.txt # Run specific test suites python tests/run_tests.py --unit # Unit tests only python tests/run_tests.py --integration # Integration tests only python tests/run_tests.py --performance # Performance benchmarks python tests/run_tests.py --mcp # MCP compliance tests # Using pytest directly python -m pytest tests/test_server.py -v --cov=src ``` ### Test Suite Overview - **Unit Tests**: Individual function and component testing - **Integration Tests**: End-to-end workflow validation - **Performance Tests**: Response time and load benchmarks - **MCP Compliance**: Protocol specification validation - **95%+ Code Coverage**: Comprehensive test coverage See [tests/README.md](tests/README.md) for complete testing documentation. ## ๐Ÿ› Troubleshooting | Issue | Solution | |-------|----------| | `ModuleNotFoundError: No module named 'mcp'` | Run `pip install mcp fastmcp` in activated environment | | `Python version issues` | Ensure Python 3.11+ with `python --version` | | `Server won't start` | Check if port is available, verify dependencies | | `Wikipedia API errors` | Check internet connection, try different search terms | For detailed troubleshooting, see [GUIDE.md](GUIDE.md#troubleshooting). ## ๐Ÿค Contributing 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## ๐Ÿ“„ License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. ## ๐Ÿ”— Resources - [Model Context Protocol Documentation](https://modelcontextprotocol.io/) - [FastMCP Framework](https://github.com/jlowin/fastmcp) - [Wikipedia API Documentation](https://wikipedia.readthedocs.io/) - [Python 3.11 Features](https://docs.python.org/3.11/whatsnew/3.11.html) ## ๐ŸŒŸ Support If you find this project helpful, please consider giving it a star โญ on GitHub! --- **Made with โค๏ธ for the MCP community**

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/kaman05010/MCPClientServer'

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