the recordCopied from the official MCP registry, exactly as it holds it.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.wyre-technology/salesforce-mcp",
"description": "MCP server for Salesforce CRM — Accounts, Contacts, Opportunities, Leads, Cases.",
"title": "Salesforce",
"repository": {
"url": "https://github.com/wyre-technology/salesforce-mcp",
"source": "github"
},
"version": "1.0.3",
"websiteUrl": "https://github.com/wyre-technology/salesforce-mcp",
"packages": [
{
"registryType": "oci",
"identifier": "ghcr.io/wyre-technology/salesforce-mcp:v1.0.3",
"transport": {
"type": "stdio"
},
"environmentVariables": [
{
"description": "Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway. Set to 'env' for stdio/local use.",
"isRequired": true,
"format": "string",
"default": "env",
"name": "AUTH_MODE"
},
{
"description": "Salesforce auth flow: 'client_credentials' (default, requires a Connected App with Client Credentials Flow enabled) or 'username_password' (fallback).",
"format": "string",
"default": "client_credentials",
"name": "SALESFORCE_AUTH_FLOW"
},
{
"description": "Connected App consumer key. Required when SALESFORCE_AUTH_FLOW=client_credentials.",
"isRequired": true,
"format": "string",
"name": "SALESFORCE_CLIENT_ID"
},
{
"description": "Connected App consumer secret. Required when SALESFORCE_AUTH_FLOW=client_credentials.",
"isRequired": true,
"format": "string",
"isSecret": true,
"name": "SALESFORCE_CLIENT_SECRET"
},
{
"description": "Salesforce org's My Domain URL (e.g. https://yourorg.my.salesforce.com). Required when SALESFORCE_AUTH_FLOW=client_credentials.",
"isRequired": true,
"format": "string",
"name": "SALESFORCE_INSTANCE_URL"
},
{
"description": "Salesforce username. Only used when SALESFORCE_AUTH_FLOW=username_password.",
"format": "string",
"name": "SALESFORCE_USERNAME"
},
{
"description": "Salesforce password. Only used when SALESFORCE_AUTH_FLOW=username_password.",
"format": "string",
"isSecret": true,
"name": "SALESFORCE_PASSWORD"
},
{
"description": "Salesforce security token. Only used when SALESFORCE_AUTH_FLOW=username_password; optional if the org has IP allowlisting configured instead.",
"format": "string",
"isSecret": true,
"name": "SALESFORCE_TOKEN"
},
{
"description": "Transport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.",
"format": "string",
"default": "stdio",
"name": "MCP_TRANSPORT"
},
{
"description": "Log verbosity: debug, info, warn, error",
"format": "string",
"default": "info",
"name": "LOG_LEVEL"
}
]
}
]
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-08-20T18:53:53.800403Z",
"publishedAt": "2026-08-20T18:53:53.800403Z",
"updatedAt": "2026-08-20T18:53:53.800403Z",
"isLatest": true
}
}
}
Make it installable
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
What this is
MCP server
application/mcp-server-record+jsonlocal · you run it yourselfversion 1.0.3last seen 2026-08-23
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.