Documentation
¶
Index ¶
- func New(client OSFClient, opts Options) *mcp.Server
- type ContributorOutput
- type ContributorsResult
- type DOIInput
- type DOIResult
- type EmptyInput
- type FileInput
- type FileOutput
- type FileVersionOutput
- type FileVersionsResult
- type FilesInput
- type FilesResult
- type NodeInput
- type NodeOutput
- type NodeResult
- type NodesResult
- type OSFClient
- type Options
- type PreprintOutput
- type PreprintSearchInput
- type PreprintsInput
- type PreprintsResult
- type RelatedResourceOutput
- type RelatedResourcesResult
- type SearchInput
- type SearchResult
- type SearchResults
- type Server
- func (s *Server) GetProject(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, NodeResult, error)
- func (s *Server) ListAddons(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, NodesResult, error)
- func (s *Server) ListComments(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
- func (s *Server) ListComponents(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, NodesResult, error)
- func (s *Server) ListContributors(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, ContributorsResult, error)
- func (s *Server) ListFileVersions(ctx context.Context, _ *mcp.CallToolRequest, in FileInput) (*mcp.CallToolResult, FileVersionsResult, error)
- func (s *Server) ListFiles(ctx context.Context, _ *mcp.CallToolRequest, in FilesInput) (*mcp.CallToolResult, FilesResult, error)
- func (s *Server) ListIdentifiers(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
- func (s *Server) ListLogs(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
- func (s *Server) ListPreprints(ctx context.Context, _ *mcp.CallToolRequest, in PreprintsInput) (*mcp.CallToolResult, NodesResult, error)
- func (s *Server) ListProjects(ctx context.Context, _ *mcp.CallToolRequest, _ EmptyInput) (*mcp.CallToolResult, NodesResult, error)
- func (s *Server) ListWikis(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
- func (s *Server) ResolveDOI(ctx context.Context, _ *mcp.CallToolRequest, in DOIInput) (*mcp.CallToolResult, DOIResult, error)
- func (s *Server) Search(ctx context.Context, _ *mcp.CallToolRequest, in SearchInput) (*mcp.CallToolResult, SearchResults, error)
- func (s *Server) SearchPreprints(ctx context.Context, _ *mcp.CallToolRequest, in PreprintSearchInput) (*mcp.CallToolResult, PreprintsResult, error)
- func (s *Server) Whoami(ctx context.Context, _ *mcp.CallToolRequest, _ EmptyInput) (*mcp.CallToolResult, UserResult, error)
- type UserOutput
- type UserResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type ContributorOutput ¶
type ContributorsResult ¶
type ContributorsResult struct {
Contributors []ContributorOutput `json:"contributors"`
}
type DOIInput ¶ added in v1.0.0
type DOIInput struct {
Identifier string `json:"identifier" jsonschema:"DOI, doi.org URL, or OSF DOI URL"`
}
type EmptyInput ¶
type EmptyInput struct{}
type FileInput ¶ added in v1.0.0
type FileInput struct {
ID string `json:"id" jsonschema:"OSF file id"`
}
type FileOutput ¶
type FileOutput struct {
ID string `json:"id"`
Type string `json:"type,omitempty"`
Name string `json:"name,omitempty"`
Kind string `json:"kind,omitempty"`
Size int64 `json:"size,omitempty"`
MD5 string `json:"md5,omitempty"`
SelfURL string `json:"selfUrl,omitempty"`
DownloadURL string `json:"downloadUrl,omitempty"`
}
type FileVersionOutput ¶ added in v1.0.0
type FileVersionsResult ¶ added in v1.0.0
type FileVersionsResult struct {
Versions []FileVersionOutput `json:"versions"`
}
type FilesInput ¶
type FilesResult ¶
type FilesResult struct {
Files []FileOutput `json:"files"`
}
type NodeInput ¶
type NodeInput struct {
ID string `json:"id" jsonschema:"OSF project/component id or URL"`
}
type NodeOutput ¶
type NodeResult ¶
type NodeResult struct {
Node NodeOutput `json:"node"`
}
type NodesResult ¶
type NodesResult struct {
Nodes []NodeOutput `json:"nodes"`
}
type OSFClient ¶
type OSFClient interface {
CurrentUser(context.Context) (osfapi.User, error)
ListCurrentUserProjects(context.Context) ([]osfapi.Node, error)
GetNode(context.Context, string) (osfapi.Node, error)
ListNodeChildren(context.Context, string) ([]osfapi.Node, error)
ListNodeContributors(context.Context, string) ([]osfapi.Contributor, error)
ListStorageFiles(context.Context, string, ...string) ([]osfapi.StorageFile, error)
ListFileVersions(context.Context, string) ([]osfapi.FileVersion, error)
ListNodeAddons(context.Context, string) ([]osfapi.Node, error)
ListWikiPages(context.Context, string) ([]osfapi.RelatedResource, error)
ListNodeComments(context.Context, string) ([]osfapi.RelatedResource, error)
ListNodeLogs(context.Context, string) ([]osfapi.RelatedResource, error)
ListNodeIdentifiers(context.Context, string) ([]osfapi.RelatedResource, error)
SearchOSF(context.Context, string, ...int) ([]osfapi.SearchResult, error)
ListPreprints(context.Context, string, ...int) ([]osfapi.Node, error)
SearchPreprints(context.Context, string, string, ...int) ([]osfapi.Preprint, error)
ResolveDOI(context.Context, string) (osfapi.DOIResolution, error)
}
OSFClient is the read-only OSF API surface exposed through MCP tools.
type Options ¶
type Options struct {
Version string
Events observability.Emitter
}
type PreprintOutput ¶ added in v1.0.0
type PreprintOutput struct {
ID string `json:"id"`
Type string `json:"type,omitempty"`
Title string `json:"title,omitempty"`
DatePublished string `json:"datePublished,omitempty"`
Published bool `json:"published"`
DOI string `json:"doi,omitempty"`
URL string `json:"url,omitempty"`
Source string `json:"source"`
}
type PreprintSearchInput ¶ added in v1.0.0
type PreprintsInput ¶ added in v1.0.0
type PreprintsResult ¶ added in v1.0.0
type PreprintsResult struct {
Preprints []PreprintOutput `json:"preprints"`
}
type RelatedResourceOutput ¶ added in v1.0.0
type RelatedResourcesResult ¶ added in v1.0.0
type RelatedResourcesResult struct {
Resources []RelatedResourceOutput `json:"resources"`
}
type SearchInput ¶ added in v1.0.0
type SearchResult ¶ added in v1.0.0
type SearchResult struct {
ID string `json:"id"`
Type string `json:"type,omitempty"`
Title string `json:"title,omitempty"`
Description string `json:"description,omitempty"`
Category string `json:"category,omitempty"`
URL string `json:"url,omitempty"`
Keywords []string `json:"keywords,omitempty"`
Year string `json:"year,omitempty"`
}
type SearchResults ¶ added in v1.0.0
type SearchResults struct {
Results []SearchResult `json:"results"`
}
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
func (*Server) GetProject ¶
func (s *Server) GetProject(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, NodeResult, error)
func (*Server) ListAddons ¶ added in v1.0.0
func (s *Server) ListAddons(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, NodesResult, error)
func (*Server) ListComments ¶ added in v1.0.0
func (s *Server) ListComments(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
func (*Server) ListComponents ¶
func (s *Server) ListComponents(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, NodesResult, error)
func (*Server) ListContributors ¶
func (s *Server) ListContributors(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, ContributorsResult, error)
func (*Server) ListFileVersions ¶ added in v1.0.0
func (s *Server) ListFileVersions(ctx context.Context, _ *mcp.CallToolRequest, in FileInput) (*mcp.CallToolResult, FileVersionsResult, error)
func (*Server) ListFiles ¶
func (s *Server) ListFiles(ctx context.Context, _ *mcp.CallToolRequest, in FilesInput) (*mcp.CallToolResult, FilesResult, error)
func (*Server) ListIdentifiers ¶ added in v1.0.0
func (s *Server) ListIdentifiers(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
func (*Server) ListLogs ¶ added in v1.0.0
func (s *Server) ListLogs(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
func (*Server) ListPreprints ¶ added in v1.0.0
func (s *Server) ListPreprints(ctx context.Context, _ *mcp.CallToolRequest, in PreprintsInput) (*mcp.CallToolResult, NodesResult, error)
func (*Server) ListProjects ¶
func (s *Server) ListProjects(ctx context.Context, _ *mcp.CallToolRequest, _ EmptyInput) (*mcp.CallToolResult, NodesResult, error)
func (*Server) ListWikis ¶ added in v1.0.0
func (s *Server) ListWikis(ctx context.Context, _ *mcp.CallToolRequest, in NodeInput) (*mcp.CallToolResult, RelatedResourcesResult, error)
func (*Server) ResolveDOI ¶ added in v1.0.0
func (s *Server) ResolveDOI(ctx context.Context, _ *mcp.CallToolRequest, in DOIInput) (*mcp.CallToolResult, DOIResult, error)
func (*Server) Search ¶ added in v1.0.0
func (s *Server) Search(ctx context.Context, _ *mcp.CallToolRequest, in SearchInput) (*mcp.CallToolResult, SearchResults, error)
func (*Server) SearchPreprints ¶ added in v1.0.0
func (s *Server) SearchPreprints(ctx context.Context, _ *mcp.CallToolRequest, in PreprintSearchInput) (*mcp.CallToolResult, PreprintsResult, error)
func (*Server) Whoami ¶
func (s *Server) Whoami(ctx context.Context, _ *mcp.CallToolRequest, _ EmptyInput) (*mcp.CallToolResult, UserResult, error)
type UserOutput ¶
type UserResult ¶
type UserResult struct {
User UserOutput `json:"user"`
}
Click to show internal directories.
Click to hide internal directories.