mcp

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2026 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

Package mcp provides an MCP (Model Context Protocol) server that exposes Pacto contract operations as tools for AI agents.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewServer

func NewServer(_ *app.Service, version string) *mcpsdk.Server

NewServer creates a new MCP server with all Pacto tools registered.

Types

type CheckResult added in v0.31.0

type CheckResult struct {
	Valid       bool             `json:"valid"`
	Summary     ContractSummary  `json:"summary"`
	Errors      []ValidationItem `json:"errors,omitempty"`
	Warnings    []ValidationItem `json:"warnings,omitempty"`
	Suggestions []Suggestion     `json:"suggestions,omitempty"`
}

CheckResult holds the result of a check operation.

func Check added in v0.31.0

func Check(path string) (*CheckResult, error)

Check validates an existing contract and returns structured results.

type ConfigProperty added in v0.31.0

type ConfigProperty struct {
	Name     string `json:"name"`
	Type     string `json:"type"`
	Required bool   `json:"required,omitempty"`
}

ConfigProperty describes a configuration property.

type ContractSummary added in v0.31.0

type ContractSummary struct {
	Name         string            `json:"name"`
	Version      string            `json:"version"`
	Owner        string            `json:"owner,omitempty"`
	Interfaces   []string          `json:"interfaces,omitempty"`
	Dependencies []string          `json:"dependencies,omitempty"`
	Workload     string            `json:"workload,omitempty"`
	StateType    string            `json:"stateType,omitempty"`
	Sections     map[string]string `json:"sections"`
}

ContractSummary provides a high-level overview of a contract.

type CreateInput added in v0.31.0

type CreateInput struct {
	Path        string
	Name        string
	Description string
	Version     string
	Owner       string

	Interfaces   []InterfaceInput
	Dependencies []DependencyInput

	Workload                  string
	StoresData                bool
	DataSurvivesRestart       bool
	DataSharedAcrossInstances bool
	DataLossImpact            string

	ConfigProperties []ConfigProperty
	Replicas         *int
	MinReplicas      *int
	MaxReplicas      *int
	Metadata         map[string]interface{}

	DryRun bool
}

CreateInput holds the parameters for creating a new contract.

type CreateResult added in v0.31.0

type CreateResult struct {
	Path      string          `json:"path"`
	Summary   ContractSummary `json:"summary"`
	Derived   []string        `json:"derived"`
	FileCount int             `json:"fileCount"`
}

CreateResult holds the result of a create operation.

func Create added in v0.31.0

func Create(input CreateInput) (*CreateResult, error)

Create builds a new pacto contract from structured input.

type DependencyInput added in v0.31.0

type DependencyInput struct {
	Name          string `json:"name"`
	Ref           string `json:"ref"`
	Required      bool   `json:"required,omitempty"`
	Compatibility string `json:"compatibility,omitempty"`
}

DependencyInput describes a dependency to add.

type EditInput added in v0.31.0

type EditInput struct {
	Path string

	Name    *string
	Version *string
	Owner   *string

	AddInterfaces    []InterfaceInput
	RemoveInterfaces []string
	AddDependencies  []DependencyInput
	RemoveDeps       []string

	Workload                  *string
	StoresData                *bool
	DataSurvivesRestart       *bool
	DataSharedAcrossInstances *bool
	DataLossImpact            *string

	AddConfigProperties []ConfigProperty
	Replicas            *int
	MinReplicas         *int
	MaxReplicas         *int
	SetMetadata         map[string]interface{}
	RemoveMetadata      []string

	DryRun bool
}

EditInput holds the parameters for editing an existing contract.

type EditResult added in v0.31.0

type EditResult struct {
	Path    string          `json:"path"`
	Summary ContractSummary `json:"summary"`
	Changes []string        `json:"changes"`
}

EditResult holds the result of an edit operation.

func Edit added in v0.31.0

func Edit(input EditInput) (*EditResult, error)

Edit modifies an existing pacto contract.

type InterfaceInput added in v0.31.0

type InterfaceInput struct {
	Name       string `json:"name"`
	Type       string `json:"type"`
	Port       *int   `json:"port,omitempty"`
	Visibility string `json:"visibility,omitempty"`
}

InterfaceInput describes an interface to add.

type Suggestion added in v0.31.0

type Suggestion struct {
	Message  string    `json:"message"`
	ToolCall *ToolCall `json:"toolCall,omitempty"`
}

Suggestion represents an improvement suggestion with an optional tool call.

type ToolCall added in v0.31.0

type ToolCall struct {
	Tool   string         `json:"tool"`
	Params map[string]any `json:"params"`
}

ToolCall represents a suggested MCP tool invocation.

type ValidationItem added in v0.31.0

type ValidationItem struct {
	Path    string `json:"path"`
	Code    string `json:"code"`
	Message string `json:"message"`
}

ValidationItem represents a single validation error or warning.

Jump to

Keyboard shortcuts

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