Skip to content

Latest commit

 

History

History
116 lines (90 loc) · 7.98 KB

File metadata and controls

116 lines (90 loc) · 7.98 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Fixed

  • Google ADK Compatibility: Fixed compatibility with Google ADK agents by removing anyOf schemas from optional parameters that were incompatible with Google's function calling API. Changed parameter type declarations to generate clean, simple schemas while maintaining backward compatibility.
    • summarize_article_for_query.max_length: Optional[int] = 250int = 250
    • summarize_article_section.max_length: Optional[int] = 150int = 150
    • extract_key_facts.topic_within_article: Optional[str] = Nonestr = "" (with automatic conversion)

Added

  • Google ADK Compatibility Tests: Added comprehensive tests to ensure all tool schemas remain compatible with Google ADK agents.
  • Revision History Tools: Added six new MCP tools for accessing Wikipedia revision history and user contribution data:
    • get_page_revisions: Get complete revision history for a Wikipedia page with user info, timestamps, and changes
    • get_user_contributions: Track all contributions made by a specific Wikipedia user across different pages
    • get_user_info: Get detailed statistics about a Wikipedia user including edit count, groups, and registration date
    • compare_revisions: Compare two specific revisions to see differences between versions
    • get_page_creator: Find who originally created a Wikipedia page
    • get_revision_details: Get detailed information about a specific revision including full content
  • Revision History Resources: Added corresponding MCP resources for REST-style access to revision history functionality
  • Comprehensive Tests: Added test suite for all new revision history and user contribution features
  • Talk Page Tools: Added get_talk_page tool to retrieve Wikipedia talk pages with discussion content and metadata structure
  • Edit Activity Analysis: Added analyze_edit_activity tool with statistical spike detection using z-scores to identify periods of unusual editing activity
  • Significance Analysis: Added get_significant_revisions tool with weighted scoring algorithm (30% byte changes, 25% revert proximity, 20% editor experience, 15% discussion references, 10% edit war patterns)
  • Controversy Detection: Comprehensive toolset for detecting Wikipedia edit wars, conflicts, and contentious periods through statistical analysis
  • Advanced Analytics: Support for granular datetime parameters, configurable sensitivity thresholds, and detailed significance factor breakdowns
  • Integration Tests: Added extensive test suite covering talk pages, spike detection algorithms, significance scoring, and controversy detection workflows

[1.5.5] - 2024-07-26

Added

  • Comprehensive Country/Locale Support: Introduced new CLI arguments --country (-c) and --list-countries to enable intuitive selection of Wikipedia content based on country or locale codes (e.g., US, China, Taiwan). The server now automatically maps these codes to appropriate Wikipedia language variants (e.g., US to en, CN to zh-hans, TW to zh-tw). This feature includes:
    • --country <CODE_OR_NAME>: Specifies the country/locale for Wikipedia content. Supports both ISO 3166-1 alpha-2 codes (e.g., JP, DE) and full country names (e.g., Japan, Germany), with case-insensitive matching for full names.
    • --list-countries: Displays a comprehensive list of all supported country/locale codes and their mapped Wikipedia languages, along with usage examples.
  • Extensive Testing: Added a new test module tests/test_cli_country.py with comprehensive unit and integration tests for all country/locale functionalities, including:
    • Validation of CLI arguments and help messages.
    • Verification of country-to-language resolution.
    • Conflict detection when --country and --language are used together.
    • Successful server startup with various country codes.

Fixed

  • Improved Country/Locale Error Handling: Enhanced error messages for unsupported country/locale codes, providing clearer guidance and suggesting the --list-countries option.

[1.5.4] - 2025-07-15

Added

  • Configurable Port: Added optional --port argument for SSE transport (default: 8000). Enables running multiple server instances on the same host without port conflicts.

    # Run on custom port
    wikipedia-mcp --transport sse --port 8080
    
    # Multiple instances on different ports
    wikipedia-mcp --transport sse --port 8081 &
    wikipedia-mcp --transport sse --port 8082 &
  • Optional Caching: Added --enable-cache flag for Wikipedia API response caching. Improves performance for repeated queries by caching results in memory using LRU cache (maxsize=128).

    # Enable caching for better performance
    wikipedia-mcp --enable-cache
    
    # Combine with other options
    wikipedia-mcp --transport sse --port 8080 --enable-cache --language ja

Changed

  • Dependency Migration: Migrated from mcp==1.10.0 to fastmcp>=2.3.0 for enhanced SSE transport capabilities and modern MCP features including configurable port support.
  • Import Updates: Updated server implementation to use from fastmcp import FastMCP instead of the legacy MCP server import.

Technical Notes

  • Port configuration only applies to SSE transport; STDIO transport ignores the port parameter
  • Caching is disabled by default to maintain backward compatibility
  • When caching is enabled, the following methods are cached: search, get_article, get_summary, get_sections, get_links, get_related_topics, summarize_for_query, summarize_section, extract_facts
  • Cache statistics can be accessed programmatically via client.method.cache_info() when caching is enabled

[Unreleased]

[1.5.2] - 2025-06-13

Added

  • Added command-line argument --language (-l) to wikipedia-mcp to specify the Wikipedia language for the server (e.g., wikipedia-mcp --language ja). This enhancement allows users to easily configure the language at startup. (Related to GitHub Issue #7).

Changed

  • Docker Improvements: Reverted Dockerfile to use proper MCP-compatible approach with PyPI installation
  • MCP Studio Compatibility: Restored stdio transport for proper MCP client communication
  • Package Installation: Now uses pip install wikipedia-mcp (recommended approach) instead of local file copying
  • Environment Configuration: Restored proper Python environment variables for containerized deployment
  • Dependency Cleanup: Removed unnecessary HTTP server dependencies (uvicorn) from requirements

Fixed

  • Fixed Docker container to work properly with MCP Studio and Claude Desktop
  • Restored proper MCP protocol compliance using stdio transport instead of HTTP

[1.5.1] - 2024-06-03

Added

  • Added an optional language parameter to create_server function in wikipedia_mcp.server to allow configuring the WikipediaClient with a specific language (e.g., "ja", "es"). Defaults to "en". (Fixes GitHub Issue #7).

Changed

  • N/A

Fixed

  • Corrected assertions in CLI tests (tests/test_cli.py) to accurately reflect the behavior of the stdio transport in a non-interactive subprocess environment. Tests now expect and verify subprocess.TimeoutExpired and check stderr for startup messages, ensuring robust testing of CLI startup and logging levels.

[1.5.0] - 2025-05-31

Added

  • New tool: summarize_article_for_query(title: str, query: str, max_length: Optional[int] = 250) to get a summary of a Wikipedia article tailored to a specific query.
  • New resource: /summary/{title}/query for the summarize_article_for_query tool.
  • New tool: summarize_article_section(title: str, section_title: str, max_length: Optional[int] = 150) to get a summary of a specific section of a Wikipedia article.
  • New resource: /summary/{title}/section/{section_title} for the summarize_article_section