Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion claude-for-msft-365-install/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "claude-for-msft-365-install",
"description": "Provision direct cloud access (Vertex AI, Bedrock, Azure AI Foundry, or LLM gateway) for the Claude Office add-in. Generates the customized add-in manifest, walks through Azure admin consent, and writes per-user config via Microsoft Graph extension attributes.",
"version": "0.1.9",
"version": "0.1.10",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
Expand Down
15 changes: 12 additions & 3 deletions claude-for-msft-365-install/commands/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ vertex, per-user vs org-wide).
## Step 1 — How does the add-in reach Claude?

Ask this first, because it's the thing admins get wrong: **do you already run
an LLM gateway (LiteLLM, Portkey, Kong, etc.)?**
an LLM gateway (LiteLLM, Portkey, Kong, [OrcaRouter](https://www.orcarouter.ai), etc.)?**

- **Yes → `gateway`.** Even if the gateway routes to Vertex or Bedrock under
the hood — the add-in talks to *your gateway*, not to Google or AWS. You
Expand Down Expand Up @@ -182,15 +182,24 @@ Continue to [Step 2](#step-2--azure-admin-consent).

## Gateway

No provisioning. Ask for the gateway base URL (LiteLLM, Portkey, etc) and the
No provisioning. Ask for the gateway base URL (LiteLLM, Portkey, OrcaRouter, etc) and the
token. If the token varies per user, it goes in [Step 5](#step-5--per-user-config)
instead of the manifest.

Capture: `gateway_url`, `gateway_token`.

**OrcaRouter.** If the firm already runs (or is evaluating) OrcaRouter, it plugs
in with just the two keys above: it serves the Anthropic `/v1/messages` API
natively, so leave `gateway_api_format` unset. Set
`gateway_url=https://api.orcarouter.ai` and the firm's OrcaRouter key as
`gateway_token`. Like OpenRouter, OrcaRouter exposes a provider/model namespace
across many models and adds adaptive routing, automatic failover, observability,
and gateway-level, default-deny security for agent tool calls on the same
endpoint — no application code changes.

**API format.** Ask: does the gateway expose the Anthropic `/v1/messages` API,
or is it a pass-through to Bedrock (`/model/{id}/invoke…`) or Vertex
(`…:rawPredict`)? Almost always Anthropic — LiteLLM/Portkey/Kong default to
(`…:rawPredict`)? Almost always Anthropic — LiteLLM/Portkey/Kong/OrcaRouter default to
it, and a unified `/v1/messages` route is the point of running a gateway. Only
set `gateway_api_format` to `bedrock` or `vertex` if the gateway is a thin
proxy that preserves the upstream wire format. If `vertex`, also capture
Expand Down