wardrowbe-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@wardrowbe-mcpSuggest an outfit for a casual Friday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
wardrowbe-mcp
MCP (Model Context Protocol) server exposing the Wardrowbe
wardrobe API as tools an LLM can call. Works against any Wardrowbe instance —
self-hosted (e.g., behind a reverse proxy or the ha-wardrowbe Home Assistant
add-on) or a hosted/cloud deployment.
22 tools covering outfit suggestions, item browsing, wear/wash logging,
acceptance flow, analytics, and notifications. Tool surface mirrors
hacs-wardrowbe's LLM API one-for-one, plus three read-only helpers
(list_items, get_item, get_outfit).
Install
pip install wardrowbe-mcpOr from source:
pip install git+https://github.com/saya6k/mcp-wardrowbeRun
wardrowbe-mcp \
--wardrowbe-url https://wardrowbe.example.com \
--api-key "$(openssl rand -hex 32)" \
--auth oidc \
--oidc-issuer-url https://id.example.com \
--oidc-client-id wardrowbe \
--oidc-refresh-token "<refresh-token>"The process listens on 0.0.0.0:8080 by default and serves both transports
at the root:
http://<host>:8080/mcp— Streamable HTTP (recommended)http://<host>:8080/sse— Server-Sent Events (legacy MCP clients)http://<host>:8080/— anonymous health/info probe
All non-probe routes require Authorization: Bearer <api-key>.
Every flag has a matching environment variable so you can drive it from a
shell environment, a .env, or a container orchestrator without rewriting
the command line:
Flag | Env var | Notes |
|
| Bind address. Default |
|
| Bind port. Default |
|
| Base URL of the Wardrowbe backend. |
|
| Required Bearer token for incoming MCP calls. |
|
|
|
|
| Dev-mode identity sent to |
|
| OIDC discovery base. |
|
| |
|
| Optional for public clients. |
|
| Obtained from a one-time external PKCE flow. |
|
|
|
Auth to the Wardrowbe backend
Two modes, selected by --auth:
dev— sends{external_id, email, display_name}toPOST /auth/sync. Works only when the Wardrowbe backend itself is in dev mode (itsDEBUG=trueandSECRET_KEYleft at the upstream default).oidc— refreshes a storedrefresh_tokenagainst the configured issuer to mint a freshid_token, then/auth/sync. The refresh token must come from a one-time interactive PKCE flow you run yourself — there is no in-process browser callback because the MCP server is headless. Once obtained, the server rotates the token automatically if the IDP returns a new one.
get_refresh_token.py — a minimal one-shot PKCE
helper — is the easiest way to bootstrap OIDC. Edit the four constants at
the top (ISSUER, CLIENT_ID, CLIENT_SECRET, REDIRECT_URI), register
that redirect URI on your IDP client, then run:
python3 get_refresh_token.pyA browser opens against the IDP; after you authenticate the script prints
the refresh_token to stdout. Paste it into --oidc-refresh-token (or
the MCP_OIDC_REFRESH_TOKEN env var) when starting wardrowbe-mcp. The
script needs the offline_access scope to be allowed on your IDP client;
otherwise the token endpoint omits refresh_token from the response.
Common IDPs verified: Pocket ID. Should work with any OIDC-conformant
provider (Keycloak, Authentik, Auth0, etc.).
Client config
Claude Code / Claude Desktop
{
"mcpServers": {
"wardrowbe": {
"type": "http",
"url": "http://<host>:8080/mcp",
"headers": { "Authorization": "Bearer <api-key>" }
}
}
}For SSE-only clients, swap "type": "http" → "type": "sse" and /mcp →
/sse.
Other MCP-aware clients
Any client that supports HTTP transport with a Bearer header works. The
server advertises tools, instructions, and a bundled
agentskills.io-compatible skill at
skill://wardrowbe-skill/SKILL.md (plus sibling resources).
Skill bundle
wardrowbe_mcp/skill/ ships inside the package as the agent-facing
documentation: a SKILL.md manifest with usage guidance and three worked
examples under examples/. The MCP server registers each file as an MCP
resource at startup, so MCP clients that auto-install skills pick it up
automatically. Manual install is also possible by copying the directory
into the client's skill discovery path.
The bundle's prose currently mentions the ha-wardrowbe add-on as the
canonical deployment. If you're running this against a different Wardrowbe
deployment, edit SKILL.md to match.
Development
git clone https://github.com/saya6k/mcp-wardrowbe
cd mcp-wardrowbe
pip install -e .
wardrowbe-mcp --helpSmoke test against a running instance:
curl -fsS http://127.0.0.1:8080/ | jq # anonymous health
curl -fsS http://127.0.0.1:8080/mcp \
-H "Authorization: Bearer $MCP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}'License
MIT. See LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/saya6k/mcp-wardrowbe'
If you have feedback or need assistance with the MCP directory API, please join our Discord server