archivebox_mcp.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env python3
  2. """
  3. archivebox mcp
  4. Start the Model Context Protocol (MCP) server in stdio mode.
  5. Exposes all ArchiveBox CLI commands as MCP tools for AI agents.
  6. """
  7. __package__ = 'archivebox.cli'
  8. __command__ = 'archivebox mcp'
  9. import rich_click as click
  10. from archivebox.misc.util import docstring, enforce_types
  11. @enforce_types
  12. def mcp():
  13. """
  14. Start the MCP server in stdio mode for AI agent control.
  15. The MCP (Model Context Protocol) server exposes all ArchiveBox CLI commands
  16. as tools that AI agents can discover and execute. It communicates via JSON-RPC
  17. 2.0 over stdin/stdout.
  18. Example usage with an MCP client:
  19. archivebox mcp < requests.jsonl > responses.jsonl
  20. Or interactively:
  21. archivebox mcp
  22. {"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}
  23. {"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
  24. """
  25. from mcp.server import run_mcp_server
  26. # Run the stdio server (blocks until stdin closes)
  27. run_mcp_server()
  28. @click.command()
  29. @docstring(mcp.__doc__)
  30. def main(**kwargs):
  31. """Start the MCP server in stdio mode"""
  32. mcp()
  33. if __name__ == '__main__':
  34. main()