{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.Servosity/appdirect-mcp","description":"AppDirect marketplace operations with an offline mirror and cross-company billing reconciliation.","title":"AppDirect MCP","repository":{"url":"https://github.com/servosity/msp-skills","source":"github","subfolder":"skills/appdirect"},"version":"0.1.12","icons":[{"src":"https://raw.githubusercontent.com/servosity/msp-skills/main/docs/assets/social/appdirect/appdirect-512x512.png","mimeType":"image/png","sizes":["512x512"]}],"packages":[{"registryType":"mcpb","identifier":"https://github.com/Servosity/msp-skills/releases/download/appdirect-v0.1.12/appdirect-mcp.mcpb","version":"0.1.12","fileSha256":"ce0231cbea0844c83a3af2f6c58d30fdd10d952b2efcd5d9cc1fef27d24b3601","transport":{"type":"stdio"},"environmentVariables":[{"description":"Base URL for the AppDirect API. Leave the prefilled default unless your account uses a different regional or self-hosted host.","default":"https://marketplace.appdirect.com/api","name":"APPDIRECT_BASE_URL"},{"description":"Set the APPDIRECT_CLIENT_ID credential for the AppDirect MCP server.","isRequired":true,"isSecret":true,"name":"APPDIRECT_CLIENT_ID"},{"description":"Set the APPDIRECT_CLIENT_SECRET credential for the AppDirect MCP server.","isRequired":true,"isSecret":true,"name":"APPDIRECT_CLIENT_SECRET"},{"description":"Optional. Overrides the OAuth2 scope sent to AppDirect (default: ROLE_PARTNER ROLE_PARTNER_READ).","isRequired":true,"isSecret":true,"name":"APPDIRECT_OAUTH_SCOPE"},{"description":"Token endpoint the client-credentials exchange posts to. Leave the prefilled default unless your tenant uses a different token endpoint.","default":"https://marketplace.appdirect.com/oauth2/token","name":"APPDIRECT_TOKEN_URL"},{"description":"Set to 1 to keep credentials off disk. The token cache becomes a no-op, so the connector mints a fresh token each run instead of writing one to config.toml. Leave blank for the default cached behaviour.","name":"APPDIRECT_NO_CONFIG_WRITE"},{"description":"Set to 1 to make the MCP server refuse every write: only read tools are callable. Leave blank to allow writes (each MCP write still previews first and sends only when called again with confirm set to true).","name":"APPDIRECT_MCP_READ_ONLY"},{"description":"Optional. Set to 1 to keep no local copy of API responses: reads go to the API and sync refuses to run. Leave blank to keep the local store.","name":"APPDIRECT_NO_LOCAL_DATA"},{"description":"Overrides the User-Agent the CLI sends on AppDirect requests. Leave blank to use the CLI's own built-in User-Agent.","name":"APPDIRECT_USER_AGENT"},{"description":"Optional. Leave blank. Reserved for MCP file uploads: the AppDirect MCP server refuses every upload in this release (a user CSV, a catalog file, a product image or PDF) and names the CLI command to run instead, so the server never opens a local path and this setting has no effect.","name":"APPDIRECT_MCP_UPLOAD_ROOT"},{"description":"Required only when running the MCP server with --transport http (a remote or hosted deployment); at least 32 characters. Callers must send a matching Authorization: Bearer header. Not needed for the default local stdio transport that Claude Desktop uses.","isSecret":true,"name":"APPDIRECT_MCP_HTTP_TOKEN"},{"description":"Only for tenant-gated multi-client deployments: binds the MCP server to an existing Printing Press client profile. Leave blank for a single-tenant install.","isSecret":true,"name":"PRINTING_PRESS_CLIENT_PROFILE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-11-10T15:59:05.815192Z","publishedAt":"2026-11-10T15:59:05.815192Z","updatedAt":"2026-11-10T15:59:05.815192Z","isLatest":true}}}],"metadata":{"count":1}}
