# Mcp Servercard Go

> Go library implementing SEP-2127 MCP Server Cards for pre-connect server discovery

- **Type:** MCP server
- **Install:** `agentstack add mcp-olgasafonova-mcp-servercard-go`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [olgasafonova](https://agentstack.voostack.com/s/olgasafonova)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [olgasafonova](https://github.com/olgasafonova)
- **Source:** https://github.com/olgasafonova/mcp-servercard-go

## Install

```sh
agentstack add mcp-olgasafonova-mcp-servercard-go
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# mcp-servercard-go

Reference implementation of SEP-2127 MCP Server Cards for Go.

Go library implementing [SEP-2127 MCP Server Cards](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127). Pure-stdlib HTTP handler; no MCP SDK dependency.

A Server Card is a JSON document served at `/.well-known/mcp-server-card` that describes an MCP server before connection: identity, transports, protocol versions, and connection guidance. This enables pre-connect discovery without a full initialization handshake.

> **Note on `$schema` URL:** The spec references `https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json`. As of v0.3.0, this URL returns 404 — schema hosting is pending the SEP merge. The library emits the URL the spec mandates; treat the schema as informational until hosted.

## Usage

```go
import "github.com/olgasafonova/mcp-servercard-go/servercard"

cardHandler, err := servercard.Attach(servercard.Options{
    Name:        "io.github.olgasafonova/gleif-mcp-server",
    Version:     "1.4.0",
    Description: "Access the GLEIF LEI database for company verification.",
    Title:       "GLEIF MCP Server",
    WebsiteURL:  "https://github.com/olgasafonova/gleif-mcp-server",
    Remotes: []servercard.Remote{{
        Type: "streamable-http",
        URL:  "/mcp",
    }},
    Provider: &servercard.Provider{
        Name: "Olga Safonova",
        URL:  "https://github.com/olgasafonova",
    },
})
if err != nil {
    log.Fatal(err)
}

// Mount alongside your MCP handler.
mux := http.NewServeMux()
mux.Handle("/mcp", mcpHandler)
mux.Handle(servercard.WellKnownPath, cardHandler)
```

## What it does

1. Builds a Server Card JSON document conforming to the SEP-2127 schema
2. Serves it at `/.well-known/mcp-server-card` with correct CORS and caching headers

## What's new in v0.3.0

- **Breaking:** Removed `RegisterResource()`, `ResourceURI`, and the `mcp://server-card.json` MCP resource endpoint to align with SEP-2127 (PR #2443, March 2026): discovery is pre-connection only via `.well-known`.
- **Breaking:** `Attach()` no longer takes a `*mcp.Server` parameter — signature is now `Attach(opts) (http.Handler, error)`.
- **Breaking:** Removed `Capabilities`, `Requires`, and `Authentication` fields per SEP-2127 scope reduction (capabilities and auth belong in `initialize`, not in static discovery).
- Library no longer depends on `github.com/modelcontextprotocol/go-sdk`. Pure stdlib.

## What's new in v0.2.0

- `Auth.Schemes` normalization: empty or nil slices serialize consistently
- `WellKnownPathFor(card)` for multi-server setups: returns `/.well-known/mcp-server-card/{name}` so multiple servers on the same host each get a distinct discovery path

## API

| Function | Purpose |
|----------|---------|
| `Attach(opts)` | One-line setup: builds card and returns HTTP handler |
| `Build(opts)` | Builds a `*ServerCard` struct from options |
| `Handler(card)` | Returns an `http.Handler` serving the card JSON |
| `WellKnownPathFor(card)` | Returns `/.well-known/mcp-server-card/{name}` for multi-server sub-paths |

## Integrated in

- [miro-mcp-server](https://github.com/olgasafonova/miro-mcp-server) (91 tools, 5 prompts)
- [mediawiki-mcp-server](https://github.com/olgasafonova/mediawiki-mcp-server) (40+ tools)

## References

- [SEP-2127: MCP Server Cards](https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127)
- [MCP go-sdk](https://github.com/modelcontextprotocol/go-sdk)
- [Skills Over MCP Interest Group](https://github.com/modelcontextprotocol/experimental-ext-skills)

## License

MIT

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [olgasafonova](https://github.com/olgasafonova)
- **Source:** [olgasafonova/mcp-servercard-go](https://github.com/olgasafonova/mcp-servercard-go)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-olgasafonova-mcp-servercard-go
- Seller: https://agentstack.voostack.com/s/olgasafonova
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
