Skip to main content
Glama

propublica-mcp

CHANGELOG.md8.96 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Fixed - Updated Python requirement from 3.9 to 3.10+ to resolve fastmcp dependency issue for Glama.ai deployment - Added glama.json configuration file for Glama.ai server verification ### Changed - Updated all dependencies to latest versions: - fastmcp: 0.9.0 → 2.12.2 - pydantic: 2.0.0 → 2.11.7 - httpx: 0.24.0 → 0.28.1 - python-dotenv: 1.0.0 → 1.1.1 - aiofiles: 23.0.0 → 24.1.0 - structlog: 23.0.0 → 25.4.0 - starlette: 0.27.0 → 0.47.3 - uvicorn: 0.23.0 → 0.35.0 - pytest: 7.0.0 → 8.4.2 - pytest-asyncio: 0.21.0 → 1.1.0 - pytest-httpx: 0.21.0 → 0.35.0 - black: 23.0.0 → 25.1.0 - flake8: 6.0.0 → 7.3.0 - isort: 5.12.0 → 6.0.1 - pre-commit: 3.0.0 → 4.3.0 ## [1.1.0] - 2025-07-14 ### Added - **DXT Extension Support**: Complete restructuring to support Anthropic DXT (Desktop Extensions) packaging format - DXT-compliant directory structure with `server/` containing bundled dependencies and entry point - New `server/main.py` entry point following official DXT conventions - Automated DXT package building via GitHub Actions workflow (`.github/workflows/dxt-release.yml`) - Bundled dependencies in `server/lib/` directory for self-contained extension deployment - Updated `manifest.json` with proper DXT configuration and PYTHONPATH setup - DXT installation instructions as primary recommended installation method in README - Automated release workflow that builds both Docker images and DXT packages - DXT package validation and testing scripts ### Changed - **Project Structure**: Restructured from `src/` layout to DXT-compliant `server/` layout - **Installation Priority**: DXT extension is now the primary recommended installation method - **README.md**: Completely reorganized to prioritize DXT installation while preserving all existing content - **Dependency Management**: Moved from runtime dependency installation to bundled dependencies approach - **Entry Point**: Changed from `python -m propublica_mcp.server` to `python server/main.py` - **PYTHONPATH Configuration**: Updated to use `${__dirname}/server/lib:${__dirname}/server` for DXT compatibility ### Fixed - Module resolution issues when running as DXT extension by implementing proper sys.path setup - Virtual environment compatibility by bundling all dependencies in extension package - Runtime dependency conflicts by using vendored dependencies approach ### Technical Details - Maintains full backward compatibility with existing Docker and Python installation methods - Supports hybrid deployment strategy (DXT for local, Docker for production) - Automatic GitHub release creation with both Docker images and DXT packages - Enhanced CI/CD pipeline for multi-format package distribution ## [1.0.0] - 2025-06-17 ### Changed - **BREAKING**: Implemented proper Streamable HTTP transport according to MCP 2025-03-26 specification - **BREAKING**: Server now uses single `/` endpoint for all MCP communication instead of separate `/sse` and `/messages` - **BREAKING**: HTTP transport now properly handles both GET and POST requests as per MCP specification - Tool responses now use correct MCP format with `content` array and `isError` flag ### Fixed - FastMCP integration for proper tool listing and calling - Improved JSON-RPC message handling and error responses - Enhanced session management and security validation - Updated health check endpoint with transport and version information ### Added - N/A ### Changed - N/A ### Fixed - N/A ## [0.2.0] - 2025-06-16 ### Added - HTTP/SSE server support for cloud deployment compatibility - Auto-detection of cloud deployment environments (PORT, DO_APP_URL, etc.) - Health check endpoints (`/health` and `/`) for cloud platform monitoring - Starlette and Uvicorn dependencies for HTTP server functionality - Support for both stdio (local MCP usage) and HTTP/SSE (cloud deployment) modes - DigitalOcean App Platform deployment configuration with PORT environment variable ### Changed - Server automatically switches between stdio and HTTP modes based on environment - Enhanced deployment template for DigitalOcean with proper cloud configuration - Moved integration tests to proper `/tests/` directory for better organization - Updated import paths in test files for correct module resolution ### Fixed - DigitalOcean deployment template source conflict (git vs github configuration) - Docker LABEL parsing error caused by unescaped apostrophe in description - Docker build failures on cloud platforms due to invalid LABEL syntax - Project structure cleanup by removing accidentally committed virtual environment ## [0.1.6] - 2025-06-16 ### Added - New `get_most_recent_pdf` MCP tool that finds the most recent Form 990 PDF filing for an organization - New `get_most_recent_pdf_filing` method in API client that iterates through all filings to find the newest PDF - One-click deployment buttons for DigitalOcean App Platform and Cloudflare Workers - Comprehensive deployment guide (`DEPLOYMENT.md`) for cloud platforms - Cloud deployment configurations (`.do/deploy.template.yaml` and `wrangler.toml`) ### Changed - Improved PDF detection logic to iterate through all filings starting from most recent year - Updated README with deployment buttons and cloud deployment instructions ### Fixed - PDF availability detection now correctly finds older PDFs when recent years don't have PDFs available - Fixed issue where organizations with PDFs available would incorrectly show "no PDFs found" ## [0.1.5] - 2025-06-16 ### Fixed - Docker tag mismatch in GitHub workflow where images were published without `v` prefix (e.g., `0.1.3`) but workflow was trying to reference them with `v` prefix (e.g., `v0.1.3`) - Updated all Docker tag references in workflow to strip `v` prefix for consistency with published image tags ## [0.1.4] - 2025-06-16 ### Fixed - Docker test timing issues by implementing retry logic and longer wait periods - Package description not appearing in GitHub Container Registry - Removed conflicting metadata labels from workflow that overrode Dockerfile labels - Enhanced Docker image description with comprehensive details about functionality ### Changed - Improved Docker test reliability with proper tag resolution for releases - Increased propagation wait time to 30 seconds with retry mechanism ## [0.1.3] - 2025-06-16 ### Fixed - Docker "manifest unknown" error by correcting GitHub repository URL in Dockerfile - Repository linking issues by adding `org.opencontainers.image.source` label to workflow metadata - Image availability timing issues in GitHub Actions workflow - GITHUB_TOKEN permissions for container package publishing - Compliance with GitHub Container Registry best practices per official documentation ## [0.1.2] - 2025-06-16 ### Added - New `search_nonprofits_with_pdfs` MCP tool for finding organizations with PDF filings - `_has_valid_pdf()` helper method to validate PDF URL availability - `get_organizations_with_pdfs()` method for PDF-specific organization searches - Enhanced filtering to ensure both `have_pdfs=true` AND valid `pdf_url` fields ### Fixed - Docker workflow "manifest unknown" error by correcting tag references in GitHub Actions - Trivy security scan image reference issues - Docker image testing and publishing pipeline reliability ## [0.1.1] - 2025-06-16 ### Fixed - Corrected release date in CHANGELOG.md for v0.1.0 ## [0.1.0] - 2025-06-16 ### Added - Initial project structure setup - ProPublica MCP Server implementation plan - Entity Relationship Diagram for data modeling - Project documentation (README, requirements, etc.) - Basic FastMCP server framework integration - Complete MCP server implementation with 6 tools: - `search_nonprofits` - Search for nonprofit organizations - `get_organization` - Get detailed organization information - `get_organization_filings` - Get Form 990 filings - `analyze_nonprofit_financials` - Analyze financial trends - `search_similar_nonprofits` - Find similar organizations - `export_nonprofit_data` - Export data for CRM integration - Comprehensive data models with validation - API client with rate limiting and error handling - Full test suite with 30+ tests passing - Docker support with multi-stage builds - Docker Compose configuration for easy deployment - GitHub Actions workflow for automated Docker publishing - GitHub Container Registry integration - Multi-architecture Docker images (linux/amd64, linux/arm64) - Security scanning with Trivy - Docker publishing script for manual deployments - Proper logging configuration for MCP protocol compatibility ### Changed - N/A ### Deprecated - N/A ### Removed - N/A ### Fixed - N/A ### Security - N/A

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/asachs01/propublica-mcp'

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