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 OAIFormatsInput
- type OAIFormatsResult
- type OAIRecordOutput
- type OAIRecordsInput
- type OAIRecordsResult
- type OAISetsResult
- type OSFClient
- type Options
- type PreprintOutput
- type PreprintSearchInput
- type PreprintsInput
- type PreprintsResult
- type ProviderInput
- type RelatedResourceOutput
- type RelatedResourcesResult
- type RepositoryCapabilitiesResult
- 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) GetRepositoryCapabilities(ctx context.Context, _ *mcp.CallToolRequest, in ProviderInput) (*mcp.CallToolResult, RepositoryCapabilitiesResult, error)
- func (s *Server) GetZenodoRecord(ctx context.Context, _ *mcp.CallToolRequest, in ZenodoRecordInput) (*mcp.CallToolResult, ZenodoRecordResult, 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) ListOAIFormats(ctx context.Context, _ *mcp.CallToolRequest, in OAIFormatsInput) (*mcp.CallToolResult, OAIFormatsResult, error)
- func (s *Server) ListOAIRecords(ctx context.Context, _ *mcp.CallToolRequest, in OAIRecordsInput) (*mcp.CallToolResult, OAIRecordsResult, error)
- func (s *Server) ListOAISets(ctx context.Context, _ *mcp.CallToolRequest, _ EmptyInput) (*mcp.CallToolResult, OAISetsResult, 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) ListZenodoFiles(ctx context.Context, _ *mcp.CallToolRequest, in ZenodoRecordInput) (*mcp.CallToolResult, ZenodoFilesResult, 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) SearchZenodoRecords(ctx context.Context, _ *mcp.CallToolRequest, in ZenodoSearchInput) (*mcp.CallToolResult, ZenodoRecordsResult, error)
- func (s *Server) Whoami(ctx context.Context, _ *mcp.CallToolRequest, _ EmptyInput) (*mcp.CallToolResult, UserResult, error)
- type UserOutput
- type UserResult
- type ZenodoFileOutput
- type ZenodoFilesResult
- type ZenodoOAIClient
- type ZenodoRESTClient
- type ZenodoRecordInput
- type ZenodoRecordOutput
- type ZenodoRecordResult
- type ZenodoRecordsResult
- type ZenodoSearchInput
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 OAIFormatsInput ¶ added in v1.0.0
type OAIFormatsInput struct {
Identifier string `json:"identifier,omitempty" jsonschema:"optional OAI identifier"`
}
type OAIFormatsResult ¶ added in v1.0.0
type OAIFormatsResult struct {
Formats []zenodooai.MetadataFormat `json:"formats"`
}
type OAIRecordOutput ¶ added in v1.0.0
type OAIRecordOutput struct {
Identifier string `json:"identifier"`
Datestamp string `json:"datestamp"`
SetSpecs []string `json:"setSpecs,omitempty"`
Deleted bool `json:"deleted,omitempty"`
NativeMetadataXML string `json:"nativeMetadataXml,omitempty"`
AboutXML string `json:"aboutXml,omitempty"`
Provenance zenodooai.Provenance `json:"provenance"`
}
type OAIRecordsInput ¶ added in v1.0.0
type OAIRecordsInput struct {
MetadataPrefix string `json:"metadataPrefix,omitempty" jsonschema:"OAI metadata prefix; defaults to oai_dc"`
Set string `json:"set,omitempty" jsonschema:"optional OAI set spec"`
From string `json:"from,omitempty" jsonschema:"inclusive RFC3339 or YYYY-MM-DD start"`
Until string `json:"until,omitempty" jsonschema:"inclusive RFC3339 or YYYY-MM-DD end"`
ResumptionToken string `json:"resumptionToken,omitempty" jsonschema:"opaque token from a prior page; exclusive with set/from/until"`
}
type OAIRecordsResult ¶ added in v1.0.0
type OAIRecordsResult struct {
Records []OAIRecordOutput `json:"records"`
Next *zenodooai.ResumptionToken `json:"next,omitempty"`
}
type OAISetsResult ¶ added in v1.0.0
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
ZenodoOAI ZenodoOAIClient
ZenodoREST ZenodoRESTClient
}
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 ProviderInput ¶ added in v1.0.0
type ProviderInput struct {
Provider string `json:"provider" jsonschema:"repository provider: osf or zenodo"`
}
type RelatedResourceOutput ¶ added in v1.0.0
type RelatedResourcesResult ¶ added in v1.0.0
type RelatedResourcesResult struct {
Resources []RelatedResourceOutput `json:"resources"`
}
type RepositoryCapabilitiesResult ¶ added in v1.0.0
type RepositoryCapabilitiesResult struct {
Contract repository.Contract `json:"contract"`
}
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) GetRepositoryCapabilities ¶ added in v1.0.0
func (s *Server) GetRepositoryCapabilities(ctx context.Context, _ *mcp.CallToolRequest, in ProviderInput) (*mcp.CallToolResult, RepositoryCapabilitiesResult, error)
func (*Server) GetZenodoRecord ¶ added in v1.0.0
func (s *Server) GetZenodoRecord(ctx context.Context, _ *mcp.CallToolRequest, in ZenodoRecordInput) (*mcp.CallToolResult, ZenodoRecordResult, 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) ListOAIFormats ¶ added in v1.0.0
func (s *Server) ListOAIFormats(ctx context.Context, _ *mcp.CallToolRequest, in OAIFormatsInput) (*mcp.CallToolResult, OAIFormatsResult, error)
func (*Server) ListOAIRecords ¶ added in v1.0.0
func (s *Server) ListOAIRecords(ctx context.Context, _ *mcp.CallToolRequest, in OAIRecordsInput) (*mcp.CallToolResult, OAIRecordsResult, error)
func (*Server) ListOAISets ¶ added in v1.0.0
func (s *Server) ListOAISets(ctx context.Context, _ *mcp.CallToolRequest, _ EmptyInput) (*mcp.CallToolResult, OAISetsResult, 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) ListZenodoFiles ¶ added in v1.0.0
func (s *Server) ListZenodoFiles(ctx context.Context, _ *mcp.CallToolRequest, in ZenodoRecordInput) (*mcp.CallToolResult, ZenodoFilesResult, 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) SearchZenodoRecords ¶ added in v1.0.0
func (s *Server) SearchZenodoRecords(ctx context.Context, _ *mcp.CallToolRequest, in ZenodoSearchInput) (*mcp.CallToolResult, ZenodoRecordsResult, 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"`
}
type ZenodoFileOutput ¶ added in v1.0.0
type ZenodoFileOutput struct {
QualifiedID string `json:"qualifiedId,omitempty"`
RecordQualifiedID string `json:"recordQualifiedId"`
ID string `json:"id,omitempty"`
Key string `json:"key"`
Size int64 `json:"size,omitempty"`
Checksum string `json:"checksum,omitempty"`
DownloadURL string `json:"downloadUrl,omitempty"`
Links map[string]string `json:"links,omitempty"`
}
type ZenodoFilesResult ¶ added in v1.0.0
type ZenodoFilesResult struct {
Files []ZenodoFileOutput `json:"files"`
}
type ZenodoOAIClient ¶ added in v1.0.0
type ZenodoOAIClient interface {
ListRecords(context.Context, zenodooai.Request) (zenodooai.Page, error)
ListSets(context.Context) ([]zenodooai.Set, error)
ListMetadataFormats(context.Context, string) ([]zenodooai.MetadataFormat, error)
}
ZenodoOAIClient is the public metadata-harvesting surface exposed separately from REST.
type ZenodoRESTClient ¶ added in v1.0.0
type ZenodoRESTClient interface {
SearchRecords(context.Context, string, int) ([]zenodoapi.Record, error)
GetRecord(context.Context, string) (zenodoapi.Record, error)
ListRecordFiles(context.Context, string) ([]zenodoapi.File, error)
}
ZenodoRESTClient is the reviewed public published-record read surface.
type ZenodoRecordInput ¶ added in v1.0.0
type ZenodoRecordInput struct {
ID string `json:"id" jsonschema:"native decimal id, zenodo:record:id, or canonical Zenodo record URL"`
}
type ZenodoRecordOutput ¶ added in v1.0.0
type ZenodoRecordOutput struct {
QualifiedID string `json:"qualifiedId"`
Provider repository.Provider `json:"provider"`
Kind repository.ResourceKind `json:"kind"`
ID string `json:"id"`
ConceptID string `json:"conceptId,omitempty"`
Title string `json:"title"`
Description string `json:"description,omitempty"`
DOI string `json:"doi,omitempty"`
ConceptDOI string `json:"conceptDoi,omitempty"`
Creators []zenodoapi.Creator `json:"creators,omitempty"`
Keywords []string `json:"keywords,omitempty"`
AccessRight string `json:"accessRight,omitempty"`
License string `json:"license,omitempty"`
Created string `json:"created,omitempty"`
Updated string `json:"updated,omitempty"`
Links map[string]string `json:"links,omitempty"`
NativeMetadataJSON string `json:"nativeMetadataJson"`
}
type ZenodoRecordResult ¶ added in v1.0.0
type ZenodoRecordResult struct {
Record ZenodoRecordOutput `json:"record"`
}
type ZenodoRecordsResult ¶ added in v1.0.0
type ZenodoRecordsResult struct {
Records []ZenodoRecordOutput `json:"records"`
}
type ZenodoSearchInput ¶ added in v1.0.0
Click to show internal directories.
Click to hide internal directories.