A remote listing is an HTTP endpoint. A local listing is a command your agent starts. How to tell which one you have.
Every MCP listing is one of two shapes. Remote means the publisher already hosts a URL. Local means the agent starts a process on your machine. The install row on a listing shows that value first, then the client buttons.
Looks like https://…/mcp or an SSE path. Cursor, Claude Code, VS Code, Windsurf, ChatGPT, and Codex can all point at it. Nothing runs on your laptop except the agent. Auth, if any, is a header the publisher documents.
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/"
}
}
}PlugMCP probes remote URLs every fifteen minutes and shows uptime on the listing. A 401 is not downtime. It means the server is up and wants you to sign in.
Looks like npx, uvx, or docker run. The registry lists a package. Your agent starts that process over stdio. Filesystem, browser, and many GitHub community servers work this way. There is no public URL to copy.
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}Required environment variables appear under the command on the listing. Replace <secret> with your own key. Do not paste those values into a chat.
The public directory does not wrap someone else's server behind mcp.plugmcp.ai. That wrap lives in the signed-in app, when you paste a URL on purpose to get keys and logs. On a listing you install the publisher's URL or command in your own client.