Files
sm-bm-plugin/mcp.go
Jakub Zych 93066c63ea feat: attach material files over MCP as base64
- storeMaterialFile: the one attach.Store call of the management API,
  shared by the multipart route and the new inline route
- POST /api/v1/bm/materials/{id}/files/inline: JSON {name, mime?,
  content_base64}, at most 3000000 bytes decoded, body.limit 4300000
- bm_manage_attach_material_file and bm_manage_detach_material_file,
  both warning that material files are public to anyone with the link
2026-10-28 15:03:43 +01:00

18 lines
606 B
Go

package bm
import (
"git.golem15.com/golem15/summercms/modules/pact"
)
var _ pact.HasMCP = (*Plugin)(nil)
// MCP declares the plugin's MCP tools. They are exposed with the bm_ prefix,
// bind token-guarded routes only (the token twins of the student API under
// TokenPrefix and the management API under ManagePrefix), run as the
// signed-in user under golem15.user's "user" guard, and their titles and
// descriptions are static text, never built from data.
func (p *Plugin) MCP() pact.MCP {
tools := append(studentTools(), manageTools()...)
return pact.MCP{Tools: append(tools, fileTools()...)}
}