Documentation
¶
Overview ¶
Package tools registers GitLab-backed MCP tool handlers.
Index ¶
- func AddTool[In, Out any](s *mcp.Server, d Deps, mutating bool, feature string, tool *mcp.Tool, ...)
- func IntFromAny(v any) (int, error)
- func Out(v any) any
- func ParseID(s string) string
- func ProjectGID(numericID int64) string
- func RegisterAll(s *mcp.Server, d Deps)
- func RegisterArtifacts(s *mcp.Server, d Deps)
- func RegisterDeployments(s *mcp.Server, d Deps)
- func RegisterDraftNotes(s *mcp.Server, d Deps)
- func RegisterGraphQLTools(s *mcp.Server, d Deps)
- func RegisterIssueNotes(s *mcp.Server, d Deps)
- func RegisterIssues(s *mcp.Server, d Deps)
- func RegisterIterationsEvents(s *mcp.Server, d Deps)
- func RegisterLabels(s *mcp.Server, d Deps)
- func RegisterMRNotes(s *mcp.Server, d Deps)
- func RegisterMarkdown(s *mcp.Server, d Deps)
- func RegisterMergeRequests(s *mcp.Server, d Deps)
- func RegisterMilestones(s *mcp.Server, d Deps)
- func RegisterPipelines(s *mcp.Server, d Deps)
- func RegisterProjects(s *mcp.Server, d Deps)
- func RegisterReleases(s *mcp.Server, d Deps)
- func RegisterRepository(s *mcp.Server, d Deps)
- func RegisterSearch(s *mcp.Server, d Deps)
- func RegisterWebhooks(s *mcp.Server, d Deps)
- func RegisterWiki(s *mcp.Server, d Deps)
- func ResolveProjectID(explicit string, defaultPID string) (string, error)
- func ToJSONTree(v any) (any, error)
- func TruncateLines(s string, maxLines int) string
- type Deps
- type Pagination
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddTool ¶
func AddTool[In, Out any](s *mcp.Server, d Deps, mutating bool, feature string, tool *mcp.Tool, h func(context.Context, *mcp.CallToolRequest, In, Deps) (*mcp.CallToolResult, Out, error))
AddTool registers a tool if read-only and feature gates pass.
func IntFromAny ¶
IntFromAny coerces json number / string to int (for IIDs).
func Out ¶
Out converts v to a JSON tree for tool results. Panics only on marshal bugs (should not happen for API types).
func ProjectGID ¶
ProjectGID builds a GitLab GraphQL global id for a project numeric id.
func RegisterAll ¶
RegisterAll wires every tool group onto the MCP server.
func RegisterArtifacts ¶
RegisterArtifacts registers job artifact tools.
func RegisterDeployments ¶
RegisterDeployments registers deployment and environment tools.
func RegisterDraftNotes ¶
RegisterDraftNotes registers MR draft note tools.
func RegisterGraphQLTools ¶
RegisterGraphQLTools registers GraphQL-based work item and utility tools.
func RegisterIssueNotes ¶
RegisterIssueNotes registers issue discussion / note tools.
func RegisterIssues ¶
RegisterIssues registers issue and issue-link tools.
func RegisterIterationsEvents ¶
RegisterIterationsEvents registers group iterations and event feeds.
func RegisterLabels ¶
RegisterLabels registers project label tools.
func RegisterMRNotes ¶
RegisterMRNotes registers MR/issue note and discussion tools.
func RegisterMarkdown ¶
RegisterMarkdown registers markdown render and upload helpers.
func RegisterMergeRequests ¶
RegisterMergeRequests registers merge request tools.
func RegisterMilestones ¶
RegisterMilestones registers milestone tools (gated by USE_MILESTONE).
func RegisterPipelines ¶
RegisterPipelines registers CI pipeline and job tools (gated by USE_PIPELINE).
func RegisterProjects ¶
RegisterProjects registers project/namespace/user tools.
func RegisterReleases ¶
RegisterReleases registers release tools.
func RegisterRepository ¶
RegisterRepository registers repository / file / branch / commit tools.
func RegisterSearch ¶
RegisterSearch registers code search tools (requires GitLab code search).
func RegisterWebhooks ¶
RegisterWebhooks registers webhook listing tools.
func RegisterWiki ¶
RegisterWiki registers project and group wiki tools.
func ResolveProjectID ¶
ResolveProjectID returns explicit project or default from config.
func ToJSONTree ¶
ToJSONTree converts v to a JSON-serializable tree (maps/slices) for MCP structured output.
func TruncateLines ¶
TruncateLines limits diff/trace text (best-effort line split).
Types ¶
type Pagination ¶
type Pagination struct {
Page int `json:"page" jsonschema:"Page number (1-based)"`
PerPage int `json:"per_page" jsonschema:"Items per page (max 100)"`
}
Pagination holds list pagination with clamped per_page.
func (Pagination) ListOpts ¶
func (p Pagination) ListOpts() (page, perPage int)
ListOpts returns gitlab ListOptions with defaults.