{"id":32709713,"url":"https://github.com/a2aproject/a2a-inspector","last_synced_at":"2026-02-28T09:48:27.558Z","repository":{"id":299863990,"uuid":"999637224","full_name":"a2aproject/a2a-inspector","owner":"a2aproject","description":"Validation Tools for A2A Agents","archived":false,"fork":false,"pushed_at":"2025-11-19T20:03:46.000Z","size":369,"stargazers_count":267,"open_issues_count":20,"forks_count":92,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-11-19T21:15:59.537Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://goo.gle/a2a-inspector-app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/a2aproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-10T14:54:09.000Z","updated_at":"2025-11-19T19:56:11.000Z","dependencies_parsed_at":"2025-07-22T16:20:59.278Z","dependency_job_id":"4a4bf0ba-0eae-4991-87a5-3371f3c7577d","html_url":"https://github.com/a2aproject/a2a-inspector","commit_stats":null,"previous_names":["google-a2a/a2a-inspector","a2aproject/a2a-inspector"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/a2aproject/a2a-inspector","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2aproject%2Fa2a-inspector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2aproject%2Fa2a-inspector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2aproject%2Fa2a-inspector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2aproject%2Fa2a-inspector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a2aproject","download_url":"https://codeload.github.com/a2aproject/a2a-inspector/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a2aproject%2Fa2a-inspector/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29929385,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-11-02T04:01:16.555Z","updated_at":"2026-02-28T09:48:27.532Z","avatar_url":"https://github.com/a2aproject.png","language":"TypeScript","funding_links":[],"categories":["🧩 Protocol Deep Dives","🛠️ Tools \u0026 Utilities","🛠️ Tools \u0026 Libraries","others","A2A - Agent2Agent Protocol","🛠 Developer Tools \u0026 Starters"],"sub_categories":["A2A (Agent2Agent Protocol)","🐛 Debugging \u0026 Testing","💻 Samples \u0026 Tools","A2A Implementation"],"readme":"# A2A Protocol Inspector\n\nThe A2A Inspector is a web-based tool designed to help developers inspect, debug, and validate servers that implement the A2A (Agent2Agent) protocol. It provides a user-friendly interface to interact with an A2A agent, view communication, and ensure specification compliance.\n\nThe application is built with a FastAPI backend and a TypeScript frontend.\n\n## Features\n\n- **Connect to a local A2A Agent:** Specify the base URL of any agent server to connect (e.g., `http://localhost:5555`).\n- **View Agent Card:** Automatically fetches and displays the agent's card.\n- **Spec Compliance Checks:** Performs basic validation on the agent card to ensure it adheres to the A2A specification.\n- **Live Chat:** A chat interface to send and receive messages with the connected agent.\n- **Debug Console:** A slide-out console shows the raw JSON-RPC 2.0 messages sent and received between the inspector and the agent server.\n\n## Prerequisites\n\n- Python 3.10+\n- [uv](https://github.com/astral-sh/uv)\n- Node.js and npm\n\n## Project Structure\n\nThis repository is organized into two main parts:\n\n- `./backend/`: Contains the Python FastAPI server that handles WebSocket connections and communication with the A2A agent.\n- `./frontend/`: Contains the TypeScript and CSS source files for the web interface.\n\n## Setup and Running the Application\n\nFollow these steps to get the A2A Inspector running on your local machine. The setup is a three-step process: install Python dependencies, install Node.js dependencies, and then run the two processes.\n\n### 1. Clone the repository\n\n```sh\ngit clone https://github.com/a2aproject/a2a-inspector.git\ncd a2a-inspector\n```\n\n### 2. Install Dependencies\n\nFirst, install the Python dependencies for the backend from the root directory. `uv sync` reads the `uv.lock` file and installs the exact versions of the packages into a virtual environment.\n\n```sh\n# Run from the root of the project\nuv sync\n```\n\nNext, install the Node.js dependencies for the frontend.\n\n```sh\n# Navigate to the frontend directory\ncd frontend\n\n# Install npm packages\nnpm install\n\n# Go back to the root directory\ncd ..\n```\n\n### 3. Run the Application\n\nYou can run the A2A Inspector in two ways. Choose the option that best fits your workflow:\n\n- Option 1 (Run Locally): Best for developers who are actively modifying the code. This method uses two separate terminal processes and provides live-reloading for both the frontend and backend.\n- Option 2 (Run with Docker): Best for quickly running the application without managing local Python and Node.js environments. Docker encapsulates all dependencies into a single container.\n\n#### Option 1: Run Locally\n\nThis approach requires you to run two processes concurrently. You can either use the provided convenience script or run them separately in different terminals.\n\n**Using the convenience script (recommended):**\n\n```sh\n# Make the script executable (first time only)\nchmod +x scripts/run.sh\n\n# Run both frontend and backend with a single command\nbash scripts/run.sh\n```\n\nThis will start both the frontend build process and backend server, displaying their outputs with colored prefixes. Press `Ctrl+C` to stop both services.\n\n**Or manually in separate terminals:**\n\nMake sure you are in the root directory of the project (`a2a-inspector`) before starting.\n\n**In your first terminal**, run the frontend development server. This will build the assets and automatically rebuild them when you make changes.\n\n```sh\n# Navigate to the frontend directory\ncd frontend\n\n# Build the frontend and watch for changes\nnpm run build -- --watch\n```\n\n**In a second terminal**, run the backend Python server.\n\n```sh\n# Navigate to the backend directory\ncd backend\n\n# Run the FastAPI server with live reload\nuv run app.py\n```\n\n##### Access the Inspector\n\nOnce both processes are running, open your web browser and navigate to:\n**[http://127.0.0.1:5001](http://127.0.0.1:5001)**\n\n#### Option Two: Run with Docker\n\nThis approach builds the entire application into a single Docker image and runs it as a container. This is the simplest way to run the inspector if you have Docker installed and don't need to modify the code.\n\nFrom the root directory of the project, run the following command. This will build the frontend, copy the results into the backend, and package everything into an image named a2a-inspector.\n\n```sh\ndocker build -t a2a-inspector .\n```\n\nOnce the image is built, run it as a container.\n\n```sh\n# It will run the container in detached mode (in the background)\ndocker run -d -p 8080:8080 a2a-inspector\n```\n\nThe container is now running in the background. Open your web browser and navigate to:\n**[http://127.0.0.1:8080](http://127.0.0.1:8080)**\n\n### 4. Inspect your agents\n\n- Try inputting a sample agent URL such as `https://sample-a2a-agent-908687846511.us-central1.run.app`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa2aproject%2Fa2a-inspector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa2aproject%2Fa2a-inspector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa2aproject%2Fa2a-inspector/lists"}