llama-stack-mirror/llama_stack/apis
Ashwin Bharambe 51945f1e57
feat: accept MCP authorization headers for MCP toolgroups (#2230)
The most interesting MCP servers are those with an authorization wall in
front of them. This PR uses the existing `provider_data` mechanism of
passing provider API keys for passing MCP access tokens (in fact,
arbitrary headers in the style of the OpenAI Responses API) from the
client through to the MCP server.

```
class MCPProviderDataValidator(BaseModel):
    # mcp_endpoint => list of headers to send
    mcp_headers: dict[str, list[str]] | None = None
```

Note how we must stuff the headers for all MCP endpoints into a single
"MCPProviderDataValidator". Unlike existing providers (e.g., Together
and Fireworks for inference) where we could name the provider api keys
clearly (`together_api_key`, `fireworks_api_key`), we cannot name these
keys for MCP. We have a single generic MCP provider which can serve
multiple "toolgroups". So we use a dict to combine all the headers for
all MCP endpoints you may want to use in an agentic call.


## Test Plan

See the added integration test for usage.
2025-05-23 08:52:18 -07:00
..
agents feat: add MCP tool signature to Responses API (#2232) 2025-05-22 16:43:08 -07:00
batch_inference chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
benchmarks chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
common chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
datasetio chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
datasets chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
eval chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
files chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
inference feat: introduce APIs for retrieving chat completion requests (#2145) 2025-05-18 21:43:19 -07:00
inspect chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
models chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
post_training chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
providers chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
safety chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
scoring chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
scoring_functions chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
shields chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
synthetic_data_generation chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
telemetry chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
tools feat: accept MCP authorization headers for MCP toolgroups (#2230) 2025-05-23 08:52:18 -07:00
vector_dbs chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
vector_io chore: more API validators (#2165) 2025-05-15 11:22:51 -07:00
__init__.py API Updates (#73) 2024-09-17 19:51:35 -07:00
datatypes.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00
resource.py chore: more mypy fixes (#2029) 2025-05-06 09:52:31 -07:00
version.py llama-stack version alpha -> v1 2025-01-15 05:58:09 -08:00