Documentation
¶
Overview ¶
Package orbit implements MCP tools for GitLab Orbit, the experimental GitLab.com Knowledge Graph API.
Index ¶
- func FormatGraphStatusMarkdown(out GraphStatusOutput) string
- func FormatQueryMarkdown(out QueryOutput) string
- func FormatSchemaMarkdown(out SchemaOutput) string
- func FormatStatusMarkdown(out StatusOutput) string
- func FormatToolsMarkdown(out ToolsOutput) string
- func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
- func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
- type GraphStatusDomain
- type GraphStatusDomainItem
- type GraphStatusIndexing
- type GraphStatusInput
- type GraphStatusOutput
- type GraphStatusProjects
- type QueryInput
- type QueryOutput
- type ResponseFormatInput
- type SchemaDomain
- type SchemaEdge
- type SchemaEdgeVariant
- type SchemaInput
- type SchemaOutput
- type StatusComponent
- type StatusInput
- type StatusOutput
- type StatusReplicas
- type ToolDefinition
- type ToolsInput
- type ToolsOutput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatGraphStatusMarkdown ¶
func FormatGraphStatusMarkdown(out GraphStatusOutput) string
FormatGraphStatusMarkdown formats Orbit graph indexing output for LLM consumption.
func FormatQueryMarkdown ¶
func FormatQueryMarkdown(out QueryOutput) string
FormatQueryMarkdown formats Orbit query output for LLM consumption.
func FormatSchemaMarkdown ¶
func FormatSchemaMarkdown(out SchemaOutput) string
FormatSchemaMarkdown formats Orbit schema output for LLM consumption.
func FormatStatusMarkdown ¶
func FormatStatusMarkdown(out StatusOutput) string
FormatStatusMarkdown formats Orbit status output for LLM consumption.
func FormatToolsMarkdown ¶
func FormatToolsMarkdown(out ToolsOutput) string
FormatToolsMarkdown formats Orbit tool manifest output for LLM consumption.
func RegisterMeta ¶
func RegisterMeta(server *mcp.Server, client *gitlabclient.Client)
RegisterMeta registers the gitlab_orbit meta-tool. Callers gate this package to GitLab.com and the Enterprise catalog.
func RegisterTools ¶
func RegisterTools(server *mcp.Server, client *gitlabclient.Client)
RegisterTools registers Orbit MCP tools. Callers gate this package to GitLab.com and the Enterprise catalog.
Types ¶
type GraphStatusDomain ¶
type GraphStatusDomain struct {
Name string `json:"name,omitempty"`
Items []GraphStatusDomainItem `json:"items,omitempty"`
}
GraphStatusDomain describes indexing counts for a graph domain.
type GraphStatusDomainItem ¶
type GraphStatusDomainItem struct {
Name string `json:"name,omitempty"`
Count int64 `json:"count"`
}
GraphStatusDomainItem describes a count for one Orbit graph node type.
type GraphStatusIndexing ¶
type GraphStatusIndexing struct {
State string `json:"state,omitempty"`
LastStartedAt string `json:"last_started_at,omitempty"`
LastCompletedAt string `json:"last_completed_at,omitempty"`
LastDurationMs int64 `json:"last_duration_ms,omitempty"`
LastError string `json:"last_error,omitempty"`
}
GraphStatusIndexing describes the latest indexing pipeline state.
type GraphStatusInput ¶
type GraphStatusInput struct {
NamespaceID int64 `` /* 132-byte string literal not displayed */
ProjectID int64 `json:"project_id,omitempty" jsonschema:"Project ID to inspect. Set exactly one of namespace_id, project_id, or full_path."`
FullPath string `` /* 146-byte string literal not displayed */
ResponseFormatInput
}
GraphStatusInput holds parameters for retrieving Orbit graph indexing status.
type GraphStatusOutput ¶
type GraphStatusOutput struct {
toolutil.HintableOutput
FormattedText string `json:"formatted_text,omitempty"`
Projects *GraphStatusProjects `json:"projects,omitempty"`
Domains []GraphStatusDomain `json:"domains,omitempty"`
Indexing *GraphStatusIndexing `json:"indexing,omitempty"`
}
GraphStatusOutput is the Orbit graph indexing status response.
func GraphStatus ¶
func GraphStatus(ctx context.Context, client *gitlabclient.Client, input GraphStatusInput) (GraphStatusOutput, error)
GraphStatus retrieves Orbit graph indexing status for a namespace or project.
type GraphStatusProjects ¶
type GraphStatusProjects struct {
Indexed int64 `json:"indexed"`
TotalKnown int64 `json:"total_known"`
}
GraphStatusProjects describes indexed and known project counts.
type QueryInput ¶
type QueryInput struct {
Query map[string]any `json:"query" jsonschema:"Orbit query DSL JSON object,required"`
ResponseFormatInput
}
QueryInput holds parameters for executing an Orbit Knowledge Graph query.
type QueryOutput ¶
type QueryOutput struct {
toolutil.HintableOutput
Result any `json:"result,omitempty"`
QueryType string `json:"query_type,omitempty"`
RawQueryStrings []string `json:"raw_query_strings,omitempty"`
RowCount int64 `json:"row_count,omitempty"`
}
QueryOutput is the result envelope returned by Orbit query execution.
func Query ¶
func Query(ctx context.Context, client *gitlabclient.Client, input QueryInput) (QueryOutput, error)
Query executes an Orbit Knowledge Graph query.
type ResponseFormatInput ¶
type ResponseFormatInput struct {
ResponseFormat string `json:"response_format,omitempty" jsonschema:"Response format to request: raw or llm. Defaults to raw."`
}
ResponseFormatInput holds the common Orbit response_format parameter.
type SchemaDomain ¶
type SchemaDomain struct {
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
NodeNames []string `json:"node_names,omitempty"`
}
SchemaDomain describes a logical grouping of Orbit graph node types.
type SchemaEdge ¶
type SchemaEdge struct {
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Variants []SchemaEdgeVariant `json:"variants,omitempty"`
}
SchemaEdge describes an Orbit graph edge type.
type SchemaEdgeVariant ¶
type SchemaEdgeVariant struct {
SourceType string `json:"source_type,omitempty"`
TargetType string `json:"target_type,omitempty"`
}
SchemaEdgeVariant describes a valid source/target pair for an Orbit edge.
type SchemaInput ¶
type SchemaInput struct {
Expand []string `json:"expand,omitempty" jsonschema:"Node names to expand with full properties and relationships."`
Format string `json:"format,omitempty" jsonschema:"Schema response format to request: raw or llm. Defaults to raw."`
}
SchemaInput holds parameters for retrieving the Orbit graph schema.
type SchemaOutput ¶
type SchemaOutput struct {
toolutil.HintableOutput
SchemaVersion string `json:"schema_version,omitempty"`
Domains []SchemaDomain `json:"domains,omitempty"`
Nodes []any `json:"nodes,omitempty"`
Edges []SchemaEdge `json:"edges,omitempty"`
}
SchemaOutput is the Orbit graph ontology response.
func Schema ¶
func Schema(ctx context.Context, client *gitlabclient.Client, input SchemaInput) (SchemaOutput, error)
Schema retrieves the Orbit graph ontology.
type StatusComponent ¶
type StatusComponent struct {
Name string `json:"name,omitempty"`
Status string `json:"status,omitempty"`
Replicas *StatusReplicas `json:"replicas,omitempty"`
Metrics any `json:"metrics,omitempty"`
}
StatusComponent describes an Orbit subsystem status entry.
type StatusInput ¶
type StatusInput struct {
ResponseFormatInput
}
StatusInput holds parameters for retrieving Orbit cluster status.
type StatusOutput ¶
type StatusOutput struct {
toolutil.HintableOutput
FormattedText string `json:"formatted_text,omitempty"`
Status string `json:"status,omitempty"`
Timestamp string `json:"timestamp,omitempty"`
Version string `json:"version,omitempty"`
Components []StatusComponent `json:"components,omitempty"`
}
StatusOutput is the Orbit cluster health response.
func Status ¶
func Status(ctx context.Context, client *gitlabclient.Client, input StatusInput) (StatusOutput, error)
Status retrieves Orbit cluster health.
type StatusReplicas ¶
StatusReplicas describes ready and desired replica counts for an Orbit component.
type ToolDefinition ¶
type ToolDefinition struct {
Name string `json:"name,omitempty"`
Description string `json:"description,omitempty"`
Parameters any `json:"parameters,omitempty"`
}
ToolDefinition describes one MCP tool manifest entry served by Orbit.
type ToolsInput ¶
type ToolsInput struct{}
ToolsInput is the input for listing Orbit MCP tool manifests.
type ToolsOutput ¶
type ToolsOutput struct {
toolutil.HintableOutput
Tools []ToolDefinition `json:"tools,omitempty"`
}
ToolsOutput is the Orbit MCP tool manifest response.
func Tools ¶
func Tools(ctx context.Context, client *gitlabclient.Client, _ ToolsInput) (ToolsOutput, error)
Tools retrieves the Orbit MCP tool manifest.