Skip to content

Changelog

All notable changes to mcp-api-test are documented in this file.

v0.1.4 (2026-10-01)

Fixed

  • flags module was missing from py-modules in pyproject.toml, causing ModuleNotFoundError: No module named 'flags' on clean install
  • Logger missing a warning() method: cURL commands containing -k / --insecure / -u / --user previously crashed with AttributeError
  • Boolean warn flags (-k, --insecure) being logged at INFO level instead of WARNING
  • An empty endpoint was assigned to the unused endpoint parameter instead of _endpoint
  • --user-agent flag being parsed but silently dropped. The value is now applied as the User-Agent header on the request
  • Broken f-string in the cURL parser payload error message (missing closing quote)
  • Stray trailing backtick in the cURL parser unsupported-flag warning message
  • Version metadata sync: src/__init__.py now reports the same version as pyproject.toml
  • Pin mcp dependency to >=1.0.0,<2.0.0: mcp 2.x removed the mcp.server.fastmcp API, breaking the server import on clean installs and CI

Tests

  • Regression tests for warn-flag parse paths, WARNING log level, user-agent header mapping, non-JSON payload preservation, empty-endpoint URL building, and packaging/version invariants

v0.1.3 (2026-07-17)

Fixed

  • Remove redirect (-L / --location) warning flags from the cURL flag registry since the behavior is already unsupported and the warnings were redundant

Features

  • Improve payload handling: non-JSON string payloads (e.g. form-encoded data from cURL -d) are now sent via content= instead of json= to prevent double-encoding.
  • Add array assertion support: required_response_fields now correctly validates fields inside JSON array items, not just plain objects.
  • Change default behavior when no assertions are provided: returns False instead of response.is_success, giving users the raw response to judge manually rather than silently passing.

Documentation

  • New documentation sections such as Getting Started (installation, client setup), Usage (request modes, assertions, response format), Guides (configuration, development, troubleshooting), Reference (tool parameters)
  • Rewrite README.md: shorter, clearer, and removes redundant detail now covered by the docs site.

Chores

  • Ignore site/ build output in .gitignore

v0.1.2 (2026-07-13)

Fixed

  • build_fullpath_url() auto-prepended / to endpoint then immediately raised ValueError, making the helper unusable for bare endpoints
  • cURL parser emitted unsupported-flag warnings at INFO level instead of WARNING, and the format string was missing a closing backtick
  • __main__.py used a bare from server import mcp that broke when the package was run as a module (python -m src)
  • README documented log path as log/mcp-api-test.log (project root) instead of the actual ~/.mcp-api-testing/logs/mcp-api-test.log

v0.1.1 (2026-06-29)

Added

  • Extended cURL parser to support additional curl flags
  • Helper to build full path URLs from base URL and endpoint
  • Helper to validate nested fields in JSON response bodies

Changed

  • Documentation restructured: troubleshooting section for Claude Desktop, clarification on how api-test-mcp differs from existing tools, reordered testing section

Fixed

  • CLI entry point made consistent with package installation path
  • Log directory path causing Claude Desktop to fail on connection
  • clear command unable to remove due to invalid target path in Makefile

Removed

  • Unused Dict type import

v0.1.0 (2026-06-26)

Added

  • test_api MCP tool supporting cURL command mode and structured request mode
  • cURL command parser with -X, -H, -d flag support
  • Formatted console output with box-drawing, pass/fail symbols, and assertion summary
  • Assertions: status code, status code range (2xx, 200-299), response fields, response contains
  • Runtime error handling with consistent error template
  • Logger module writing to log/mcp-api-test.log
  • Environment variable loading via .env with python-dotenv
  • Unit tests for cURL parser and status code range parsing
  • Integration tests with mocked HTTP via respx
  • CI pipeline (GitLab CI) running pytest -v
  • MIT license and PyPI classifiers
  • Project metadata: pyproject.toml, MANIFEST.in, .gitignore
  • Documentation: README with install, usage, MCP Inspector, Claude Desktop, OpenCode setup
  • Runtime logs excluded from source distribution