Read-only MCP tools for authenticated Open Science Framework projects and files.
A Go command-line client for the Open Science Framework (OSF).
osf auth whoami — Identify the authenticated OSF accountosf auth login — Guided personal-access-token bootstrap for username/password usersosf projects list|get — List and inspect projectsosf components list — List project componentsosf files list|download|upload|mkdir|rm — Browse, download, upload, create folders, and delete OSF Storage filesosf search, osf search --bibtex, osf preprints list|search, and osf resolve — Search/export OSF literature metadata, discover preprints, and resolve OSF DOI destinationsosf registrations create — Create draft registrations for an existing nodeosf export — Export a node snapshot as JSON or a summary tableosf validate — Check OSF node metadata with deterministic research-output or preregistration profilesosf-mcp — Stdio MCP server exposing read-only OSF tools for agent clientsosf completion bash|zsh|fish|powershell — Shell completion scriptsRequirements:
go install github.com/edithatogo/osf-cli-go/cmd/osf@latest
go install github.com/edithatogo/osf-cli-go/cmd/osf-mcp@latest
Or from a local checkout:
go build -o bin\osf.exe ./cmd/osf
go build -o bin\osf-mcp.exe ./cmd/osf-mcp
.\scripts\build.ps1
Set OSF_TOKEN in your shell session. Do not commit the token or write it into project files. OSF_USERNAME and OSF_PASSWORD are supported as an opt-in fallback credential source, but personal access tokens remain preferred for automation and for accounts using SSO or two-factor authentication.
$env:OSF_TOKEN = '<your-token>'
For guided token setup:
osf auth login
osf --help
osf auth whoami
osf projects list
osf projects get https://osf.io/abc12/
osf components list abc12
osf files list abc12
osf files download --file <file-id> ./output/
osf files download --tree abc12 ./output/
osf files upload --node abc12 ./report.pdf
osf search "open science"
osf search "open science" --bibtex
osf preprints list
osf preprints search "open science" --provider osf
osf resolve 10.1234/example
osf registrations create abc12 --schema <schema-id> --title "Analysis plan"
osf export abc12 --json
osf-mcp runs a stdio MCP server with read-only tools:
osf_whoami, osf_projects_list, osf_project_get,
osf_components_list, osf_files_list, osf_contributors_list,
osf_search, osf_preprints_list, osf_preprints_search, and
osf_doi_resolve.
The parity discovery tools are bounded and deterministic: osf_search requires
a non-empty query and accepts a limit from 1 to 100, while
osf_preprints_list accepts an optional provider and the same bounded limit.
osf_preprints_search requires a title query, accepts an optional provider, and
returns publication date, published state, DOI, and OSF HTML URL with a limit
from 1 to 100. These tools return structured JSON through the MCP server and
never perform writes.
OSF search results include stable IDs, title, abstract, keywords, year, and URL.
Use osf search <query> --bibtex to emit deterministic BibTeX records for
literature-review workflows. The command does not resolve contributor names or
download PDFs automatically.
For DataLad workflows, OSF CLI Go provides the general-purpose OSF API and
safe file primitives used around a dataset, including osf export and
osf files download --tree. It does not install or configure DataLad, Git
remotes, or git-annex special remotes; those integrations remain a separately
scoped interoperability boundary.
Local development configs are included for GitHub Copilot, VS Code, Claude,
Codex, Gemini CLI, and Qwen Code. Public registry metadata is in server.json
and registry/.
Other maintained servers in the same Glama portfolio:
Related OSF ecosystem servers:
All commands support --output table|json and --json shorthand:
osf projects list --json
osf auth whoami --output json
The CLI is offline-tested for read-only operations, file downloads, WaterButler write primitives, search, preprint listing, draft registration creation, project create/update/delete operations, and node export. All Conductor tracks are reconciled against their per-track plans with closeout review evidence; live OSF validation remains opt-in because it requires credentials and network access.
Apache 2.0 — see LICENSE.
If you use this software in your research, please cite it using the metadata in CITATION.cff.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
docker run -i --rm ghcr.io/edithatogo/osf-cli-go-osf-mcp:0.3.2Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-edithatogo-osf-cli-go": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/edithatogo/osf-cli-go-osf-mcp:0.3.2"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceghcr.io/edithatogo/osf-cli-go-osf-mcp:0.3.2dockerOSF CLI Go works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.