Help us shape the future of Go! Take the 2026 Go Developer Survey

mcp

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2026 License: EUPL-1.2 Imports: 29 Imported by: 0

Documentation

Overview

Package mcp connecte tenon à des serveurs MCP (stdio et HTTP streamable) et expose leurs outils comme des tools.Tool.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Describe

func Describe(toolName string) (server string, jurisdiction llm.Jurisdiction, ok bool)

Describe renvoie le serveur et la juridiction d'un outil MCP exposé.

func Start

func Start(ctx context.Context, servers []config.MCPServer, opts Options) (*Manager, []Down)

Start se connecte en parallèle à chaque serveur non désactivé. Un serveur en échec est signalé dans []Down et ignoré.

func ToolName

func ToolName(server, tool string, taken map[string]bool) string

ToolName construit le nom exposé au modèle : mcp__<serveur>__<outil>, les caractères hors [A-Za-z0-9_-] remplacés par « _ », 64 caractères au plus. En cas de collision avec un nom de taken, le nom est tronqué puis suffixé par « _<4 hex> » d'un hash. Le nom retenu est ajouté à taken (si non nil).

Types

type Down

type Down struct {
	Server, Error string
	// NonEUSkipped : serveur hors UE (ou de juridiction inconnue) ni lancé
	// ni contacté, faute de consentement d'avance (AllowNonEU).
	NonEUSkipped bool
}

Down signale un serveur injoignable au démarrage, ou non lancé.

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager détient les sessions MCP ouvertes et les outils adaptés.

func (*Manager) Close

func (m *Manager) Close() error

Close ferme les sessions et termine les processus stdio (SIGTERM au groupe, SIGKILL après 2 s). Idempotent.

func (*Manager) Kill

func (m *Manager) Kill()

Kill tue sur-le-champ (SIGKILL) le groupe de processus de chaque serveur stdio, sans attendre : réservé à une sortie immédiate du processus (second Ctrl+C). Les sessions HTTP ne sont pas fermées.

func (*Manager) Secrets

func (m *Manager) Secrets() []string

Secrets renvoie les valeurs non vides des variables env_from et bearer_env.

func (*Manager) Tools

func (m *Manager) Tools() []tools.Tool

Tools renvoie les outils de tous les serveurs joignables au démarrage.

func (*Manager) Warnings

func (m *Manager) Warnings() []string

Warnings renvoie les avertissements du démarrage (outils ignorés).

type Options

type Options struct {
	Getenv         func(string) string // nil : os.Getenv
	CallTimeout    time.Duration       // shell_timeout (2 min par défaut)
	ConnectTimeout time.Duration       // 15 s par défaut
	OutputLimit    int
	Consent        func(serverID string) bool // juridiction ; nil = toujours vrai
	// Root est la racine du projet, transmise aux serveurs stdio par
	// TENON_PROJECT_ROOT ; leur répertoire de travail est HOME.
	Root string

	// AllowNonEU est le consentement d'avance (--allow-non-eu) : sans lui, les
	// outils d'un serveur hors UE exigent une validation humaine (ForceAsk).
	AllowNonEU bool
	// contains filtered or unexported fields
}

Options règle la connexion aux serveurs MCP.

type ServerInfo

type ServerInfo struct {
	ID           string
	Jurisdiction llm.Jurisdiction
	Country      string
}

ServerInfo décrit le serveur d'un outil MCP exposé (valeurs de la configuration).

func Lookup

func Lookup(toolName string) (ServerInfo, bool)

Lookup renvoie le serveur d'un outil MCP exposé.

Directories

Path Synopsis
Package mcptest fournit le serveur MCP stdio des tests : le binaire de test relancé avec EnvServer=1 joue un serveur selon EnvMode.
Package mcptest fournit le serveur MCP stdio des tests : le binaire de test relancé avec EnvServer=1 joue un serveur selon EnvMode.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL