> ## Documentation Index
> Fetch the complete documentation index at: https://mcpgolang.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Welcome to mcp-golang  - A Go Implementation of the Model Context Protocol

<img className="block dark:hidden" src="https://mintcdn.com/mcp-golang/tbJkFnEgP0hvwNFk/logo/mcp-golang-light.svg?fit=max&auto=format&n=tbJkFnEgP0hvwNFk&q=85&s=339b7d83ac42252ddff6099d40bdfdc3" alt="MCP Golang Light Logo" width="842" height="135" data-path="logo/mcp-golang-light.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/mcp-golang/tbJkFnEgP0hvwNFk/logo/mcp-golang-dark.svg?fit=max&auto=format&n=tbJkFnEgP0hvwNFk&q=85&s=001e81556fc3036d6db2759db84dcf1b" alt="MCP Golang Dark Logo" width="842" height="135" data-path="logo/mcp-golang-dark.svg" />

## What is mcp-golang?

mcp-golang is an unofficial implementation of the [Model Context Protocol](https://modelcontextprotocol.io/) in Go. It provides a robust framework for building servers that can interact with AI models through a standardized protocol.

## Key Features

<CardGroup cols={2}>
  <Card title="Batteries Included" icon="battery-full">
    Set up an MCP server with support for tools, resources, and prompts in just a few lines of code.
  </Card>

  <Card title="Type Safety" icon="shield-check">
    Full Go type safety with automatic JSON schema generation from go structs.
  </Card>

  <Card title="Composable" icon="screwdriver-wrench">
    Just take the components you need: transport, protocol or server.
  </Card>

  <Card title="Bring your own transport" icon="spinner">
    mcp-golang has implemented the default transports: stdio and sse. If you need to implement your own transport, no problem! Use the rest of the library
  </Card>
</CardGroup>

## Design Philosophy

The library is designed with the following principles in mind:

* **Simple API**: Easy to use for basic cases while supporting complex production use cases
* **Sane Defaults**: Provides reasonable defaults while allowing customization
* **Server First**: Primary focus on server implementation with future plans for client support
* **Production Ready**: Built for reliability and performance in production environments

## Getting Started

To start using mcp-golang in your project, head over to our [Quickstart](/quickstart) guide. For more detailed information about development and contribution, check out our [Development](/development) guide.
