@transcend-io/mcp-server-inventory
v1.0.13
Published
Transcend MCP Server — Data Inventory tools.
Maintainers
Keywords
Readme
@transcend-io/mcp-server-inventory
Beta — this package is under active development. APIs may change without notice.
Transcend MCP Server for data inventory management. Provides tools for managing data silos (integrations), data points, vendors, categories, and identifiers.
Requires Node.js ≥ 22.12 (see engines in package.json).
For local runs from this repository, copy secret.env.example to secret.env at the repo root (gitignored) and set the OAuth environment variables (see Run from the monorepo).
Install
Install the CLI globally:
npm install -g @transcend-io/mcp-server-inventoryOr run from a checkout of this repository (see Run from the monorepo below).
Usage
# With OAuth env vars in the environment; from the monorepo use secret.env (see Run from the monorepo)
TRANSCEND_OAUTH_CLIENT_ID=your-client-id \
TRANSCEND_OAUTH_CLIENT_SECRET=your-client-secret \
TRANSCEND_OAUTH_REDIRECT_PORT=your-client-redirect-port \
transcend-mcp-inventoryThe process speaks MCP over stdio and is meant to be launched by an MCP client (for example Cursor or Claude Desktop), not used as an interactive shell.
OAuth client setup
OAuth stdio is the recommended path for MCP clients (Cursor, Claude Desktop). Requires org admin access to create OAuth clients.
- Navigate to app.transcend.io/admin/oauth-clients and create an OAuth client.
- Copy the client ID and client secret.
- Choose an available localhost port number, then register
http://127.0.0.1:{port}/callbackon the OAuth client ({port}is the number you chose). Use127.0.0.1, notlocalhost, and ensure the path is/callback. SetTRANSCEND_OAUTH_REDIRECT_PORTto the same port number.
At startup the server verifies client ID, secret, and redirect URI. On first tool call it opens a browser for login. Tokens are session-only (in-memory).
OAuth scopes: ViewDataMap, ViewAssignedIntegrations, ManageDataMap, ManageAssignedIntegrations, ViewDataInventory, ViewAssignedDataInventory, ManageDataInventory, ManageAssignedDataInventory. The signed-in user must hold these permissions. See src/scopes.ts.
Full setup, troubleshooting, and multi-server guidance: MCP root README.
API key alternative: set
TRANSCEND_API_KEYinstead of OAuth vars for stdio (OAuth is disabled when both are set).
MCP client configuration
npx runs the package’s transcend-mcp-inventory binary (see bin in package.json).
{
"mcpServers": {
"transcend-inventory": {
"command": "npx",
"args": ["-y", "@transcend-io/mcp-server-inventory"],
"env": {
"TRANSCEND_OAUTH_CLIENT_ID": "your-client-id",
"TRANSCEND_OAUTH_CLIENT_SECRET": "your-client-secret",
"TRANSCEND_OAUTH_REDIRECT_PORT": "your-client-redirect-port"
}
}
}
}When developing in this repository, reuse the same variable names from root secret.env in the env block, or use your client’s env-file support if it has one.
Run from the monorepo
Credentials — From the repository root, copy
secret.env.exampletosecret.envand setTRANSCEND_OAUTH_CLIENT_ID,TRANSCEND_OAUTH_CLIENT_SECRET, andTRANSCEND_OAUTH_REDIRECT_PORT(and optional URL overrides).Build and run —
node ./dist/cli.mjsmatches thetranscend-mcp-inventorybin(usenodebecausepnpm exec transcend-mcp-inventorymay not resolve this package’s own binary in a pnpm workspace):
# from the repository root
pnpm exec turbo run build --filter="@transcend-io/mcp-server-inventory..."
set -a && source ./secret.env && set +a
pnpm -F @transcend-io/mcp-server-inventory exec node ./dist/cli.mjsAlternative: ./scripts/mcp-run.sh ./packages/mcp/mcp-server-inventory/dist/cli.mjs (sources secret.env when present; run after build).
See CONTRIBUTING.md for workspace layout and pnpm --filter workflows.
Environment variables
| Variable | Required (stdio OAuth) | Default | Description |
| ------------------------------- | ---------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| TRANSCEND_OAUTH_CLIENT_ID | Yes | — | Client ID from app.transcend.io/admin/oauth-clients |
| TRANSCEND_OAUTH_CLIENT_SECRET | Yes | — | Client secret from the same OAuth clients page |
| TRANSCEND_OAUTH_REDIRECT_PORT | Yes | — | Port number you choose for the OAuth callback server (must be available on your machine); must match the port in your registered redirect URI |
| TRANSCEND_OAUTH_REDIRECT_HOST | No | 127.0.0.1 | Loopback host for the OAuth callback (127.0.0.1 or ::1 for http://[::1]:{port}/callback) |
| TRANSCEND_OAUTH_ISSUER | No | auto-detected | OAuth issuer URL; production auto-detects region. Test-only override |
| TRANSCEND_API_KEY | No | — | API key for stdio (alternative to OAuth). Disables OAuth when set alongside client ID |
| TRANSCEND_API_URL | No | https://api.transcend.io | GraphQL backend API URL (matches CLI convention) |
| SOMBRA_URL | No | https://multi-tenant.sombra.transcend.io | Sombra REST API URL (matches CLI / SDK convention) |
Monorepo: keep these in root secret.env (from secret.env.example); see Run from the monorepo.
Tools
inventory_list_data_silos— List data silos (optionaltext/titles/customSiloConnectionStrategyfilters)inventory_get_data_silo— Get data silo details (vendor, purposes, owners, subjects, metadata,sombraId,customSiloConnectionStrategy)inventory_list_catalog_integrations— Search the integration catalog for validintegrationNamevalues (optionaltextfilter)inventory_write_data_silo— Create or update a data silo (integrationNameto create,dataSiloIdto update; owners/vendor/purposes in the same call; passsombraIdwhen creatingcustomFunction)inventory_list_data_points— List data points (optionaldataSiloIdandtextfilters)inventory_update_or_create_data_point— Create/update a datapoint and field-level purpose assignmentsinventory_list_sub_data_points— List sub-data points (includes purposes and categories)inventory_list_categories— List data category subcategories (optionaltextfilter; includes ids)inventory_write_category— Create or update a data category subcategory (upsert by name+category or id)inventory_list_processing_purposes— List processing purpose subcategories (optionaltextfilter)inventory_write_processing_purpose— Create or update a processing purpose subcategoryinventory_list_identifiers— List identifiersinventory_list_vendors— List vendors (contact / DPA / website fields; optionaltextfilter)inventory_write_vendor— Create or update a vendor (upsert by title or id)inventory_list_business_entities— List business entitiesinventory_list_data_subjects— List data subject typesinventory_analyze— Analyze inventory data
Related packages
Also available as part of the unified @transcend-io/mcp, which includes all domains. See the root README for the full list.
