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 ¶
Start se connecte en parallèle à chaque serveur non désactivé. Un serveur en échec est signalé dans []Down et ignoré.
func ToolName ¶
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
// Confined : serveur stdio lancé confiné, puis injoignable ; l'échec
// peut venir du confinement (écriture refusée, réseau coupé).
Confined 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 ¶
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) SandboxUse ¶ added in v0.7.0
func (m *Manager) SandboxUse(id string) *event.SandboxUse
SandboxUse renvoie l'isolation du serveur stdio id joignable au démarrage (nil pour un serveur http, de test ou absent).
func (*Manager) Secrets ¶
Secrets renvoie les valeurs non vides des variables env_from et bearer_env.
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
// NoProxy (profils strict-local et secnumcloud) : les clients HTTP ignorent
// HTTP_PROXY/HTTPS_PROXY ; une adresse privée ne sort pas par un proxy.
NoProxy bool
// Sandbox est la Spec de base des serveurs stdio (nil : non confinés).
// Elle ne contient pas le projet : chaque serveur reçoit une copie, avec
// Dir = HOME, le projet inscriptible pour risk write ou exec, le réseau
// ouvert pour risk network.
Sandbox *sandbox.Spec
// NetworkOpen indique que l'isolation ne coupe pas le réseau (sonde :
// isolation réseau "none") : le journal déclare alors le réseau ouvert.
NetworkOpen 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é.