# MCP Service Account Agent Sample

This agent demonstrates how to connect to a remote MCP server using a gcloud service account for authentication. It uses Streamable HTTP for communication.

## Setup

Before running the agent, you need to configure the MCP server URL and your service account credentials in `agent.py`.

1. **Configure MCP Server URL:**
   Update the `MCP_SERVER_URL` variable with the URL of your MCP server instance.

   ```python
   # agent.py
   # TODO: Update this to the production MCP server url and scopes.
   MCP_SERVER_URL = "https://test.sandbox.googleapis.com/mcp"
   ```

1. **Set up Service Account Credentials:**

   - Obtain the JSON key file for your gcloud service account.
   - In `agent.py`, find the `ServiceAccountCredential` object and populate its parameters (e.g., `project_id`, `private_key`, `client_email`, etc.) with the corresponding values from your JSON key file.

   ```python
   # agent.py
   # TODO: Update this to the user's service account credentials.
   auth_credential=AuthCredential(
       auth_type=AuthCredentialTypes.SERVICE_ACCOUNT,
       service_account=ServiceAccount(
           service_account_credential=ServiceAccountCredential(
               type_="service_account",
               project_id="example",
               private_key_id="123",
               private_key="123",
               client_email="test@example.iam.gserviceaccount.com",
               client_id="123",
               auth_uri="https://accounts.google.com/o/oauth2/auth",
               token_uri="https://oauth2.googleapis.com/token",
               auth_provider_x509_cert_url=(
                   "https://www.googleapis.com/oauth2/v1/certs"
               ),
               client_x509_cert_url="https://www.googleapis.com/robot/v1/metadata/x509/example.iam.gserviceaccount.com",
               universe_domain="googleapis.com",
           ),
           scopes=SCOPES.keys(),
       ),
   ),
   ```

## Running the Agent

Once configured, you can run the agent.

For example:

```bash
adk web
```
