mcp-framework/docs/minimal-example.md

1 KiB

Exemple minimal

Cet exemple suppose qu'un mcp.toml existe à la racine du module et que le package généré est à jour :

mcp-framework generate

Exemple de runner Go :

package main

import (
	"context"
	"fmt"
	"os"

	"example.com/my-mcp/mcpgen"
	"forge.lclr.dev/AI/mcp-framework/config"
	"forge.lclr.dev/AI/mcp-framework/update"
)

var version = "dev"

type Profile struct {
	BaseURL string `json:"base_url"`
}

func main() {
	if err := run(context.Background()); err != nil {
		fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}
}

func run(ctx context.Context) error {
	cfgStore := config.NewStore[Profile](mcpgen.BinaryName)

	cfg, _, err := cfgStore.LoadDefault()
	if err != nil {
		return err
	}

	_, source, err := mcpgen.LoadManifest(".")
	if err != nil {
		return err
	}
	fmt.Println("manifest:", source)

	updateOptions, err := mcpgen.UpdateOptions(version, os.Stdout)
	if err != nil {
		return err
	}
	if err := update.Run(ctx, updateOptions); err != nil {
		return err
	}

	_ = cfg
	return nil
}