inventory-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., "@inventory-mcpsearch for my blue jacket"
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.
inventory-mcp
MCP server for Inventory (whereiput.it) — search your stuff, do full CRUD, and run the AI photo-assist flow from Claude Desktop, Claude Code, Codex, or any MCP-compatible client.
It is a thin scope-enforced proxy over the Inventory token API (/api/v1/inventory/*). It makes no auth decision: it forwards your inv_ bearer unchanged as an Authorization: Bearer header over HTTPS, and the API's 403/404 is the real boundary. The token is never placed in a URL and never logged.
Setup
npm install
npm run buildRelated MCP server: PyerP MCP Server
Get a token
Mint a personal API token in the SPA at https://whereiput.it/settings?tab=integrations (name + scopes read/write/ai). The raw inv_… secret is shown once — copy it into the installer.
Tool visibility is gated by the token's scopes: a read-only token never sees write/ai tools.
Install (curl | bash)
Interactive (prompts for token + client):
curl -fsSL https://mcp.whereiput.it | bashNon-interactive, Codex:
curl -fsSL https://mcp.whereiput.it | bash -s -- inv_your_token_here codexThe installer gates on the inv_ prefix, configures Claude Code (claude mcp add) and/or Codex (codex mcp add + an idempotent managed-block shell export), and never embeds the token in a URL.
Transports & client config
Claude Code (remote HTTP)
claude mcp add inventory --transport http https://mcp.whereiput.it/mcp -H "Authorization: Bearer inv_…"Codex (~/.codex/config.toml)
[mcp_servers.inventory]
url = "https://mcp.whereiput.it/mcp"
bearer_token_env_var = "INVENTORY_TOKEN"Then set the token before starting Codex:
export INVENTORY_TOKEN="inv_your_token_here" # fish: set -gx INVENTORY_TOKEN inv_your_token_hereClaude Desktop (local stdio — zero infra)
{
"mcpServers": {
"inventory": {
"command": "node",
"args": ["/path/to/inventory-mcp/dist/stdio.js"],
"env": {
"INVENTORY_API_URL": "https://whereiput.it",
"INVENTORY_API_TOKEN": "inv_your_token_here"
}
}
}
}Generic HTTP client
{ "type": "http", "url": "https://mcp.whereiput.it/mcp", "headers": { "Authorization": "Bearer inv_…" } }Environment variables
Variable | Default | Purpose |
|
| Inventory token API base URL. Deploy override: |
| — | The |
|
| HTTP transport listen port (the |
INVENTORY_API_URL defaults to https://whereiput.it, but the production mcp.whereiput.it deploy
overrides it to https://api.whereiput.it (the host that actually serves /api/v1/inventory/*).
Tools
Tool | Scope | API call |
| read | GET areas[/{id}] |
| read | GET areas/{id}/locations, locations/{id} |
| read | GET items/search?q=, items/{id} |
| write | POST/PUT/DELETE areas |
| write | POST areas/{id}/locations, PUT/DELETE locations/{id} |
| write | POST locations/{id}/items, PUT/DELETE items/{id} |
| write | POST categories / tags |
| ai | POST items/recognize |
| ai | POST locations/{id}/items/bulk |
A user-invoked catalog_from_photo prompt walks the recognize → review → save flow.
AI photo-assist caveat (Phase 7 follow-up)
recognize_photo passes text-friendly args (image_base64 + mime + area_id). The Phase 7 recognize endpoint is multipart-only today. For the remote HTTP transport, the recognize endpoint likely needs a base64/JSON input-adapter branch (an input adapter only — no logic change). The ai tools + client methods ship now; the live end-to-end recognize call lights up once that input adapter lands. This is a documented sequencing acceptance, not a blocker.
Remote deploy (the heavier infra lift)
The remote Streamable HTTP transport (mcp.whereiput.it) is an operator task, not automatable from this repo:
Run
node dist/http.jscontinuously under a process manager (this box uses supervisor:whereiput-mcp, port3119).TLS-terminate + reverse-proxy
mcp.whereiput.it→ the Node process (the SDK speaks plain HTTP; HTTPS is the front).Add a DNS A/AAAA record for
mcp.whereiput.it.Set
INVENTORY_API_URLto the Inventory token API host (https://api.whereiput.it).
Sessions are tracked in an in-memory Map (single instance is adequate for v1; a multi-instance deploy would need sticky sessions).
stdio-local needs zero hosting — the Claude Desktop config above works entirely on the local machine with no remote endpoint.
Development
npm run dev # HTTP transport with tsx (no build step)
npm run dev:stdio # stdio transport with tsx
npm test # vitestThis server cannot be installed
Maintenance
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/golem15com/inventory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server