{
  "markdown": "# osf-cli-go\n\nA Go command-line client for the Open Science Framework (OSF).\n\n[![CI](https://github.com/edithatogo/osf-cli-go/actions/workflows/ci.yml/badge.svg)](https://github.com/edithatogo/osf-cli-go/actions/workflows/ci.yml)\n[![Lint](https://github.com/edithatogo/osf-cli-go/actions/workflows/lint.yml/badge.svg)](https://github.com/edithatogo/osf-cli-go/actions/workflows/lint.yml)\n[![Security](https://github.com/edithatogo/osf-cli-go/actions/workflows/security.yml/badge.svg)](https://github.com/edithatogo/osf-cli-go/actions/workflows/security.yml)\n[![Go Reference](https://pkg.go.dev/badge/github.com/edithatogo/osf-cli-go.svg)](https://pkg.go.dev/github.com/edithatogo/osf-cli-go)\n[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)\n[![Go Version](https://img.shields.io/github/go-mod/go-version/edithatogo/osf-cli-go)](go.mod)\n[![Release](https://img.shields.io/github/v/release/edithatogo/osf-cli-go?include_prereleases)](https://github.com/edithatogo/osf-cli-go/releases)\n[![OSF CLI Go MCP server](https://glama.ai/mcp/servers/edithatogo/osf-cli-go/badges/score.svg)](https://glama.ai/mcp/servers/edithatogo/osf-cli-go)\n\n## Features\n\n- `osf auth whoami` — Identify the authenticated OSF account\n- `osf auth login` — Guided personal-access-token bootstrap for username/password users\n- `osf projects list|get` — List and inspect projects\n- `osf components list` — List project components\n- `osf files list|download|upload|mkdir|rm` — Browse, download, upload, create folders, and delete OSF Storage files\n- `osf search`, `osf search --bibtex`, `osf preprints list|search`, and `osf resolve` — Search/export OSF literature metadata, discover preprints, and resolve OSF DOI destinations\n- `osf registrations create` — Create draft registrations for an existing node\n- `osf export` — Export a node snapshot as JSON or a summary table\n- `osf validate` — Check OSF node metadata with deterministic research-output or preregistration profiles\n- `osf-mcp` — Stdio MCP server exposing read-only OSF tools for agent clients\n- `osf completion bash|zsh|fish|powershell` — Shell completion scripts\n- JSON and human-readable output modes\n- Safe, atomic file downloads with conflict policy (fail/skip/overwrite)\n\n## Install\n\nRequirements:\n- Go 1.26 or newer\n\n```powershell\ngo install github.com/edithatogo/osf-cli-go/cmd/osf@latest\ngo install github.com/edithatogo/osf-cli-go/cmd/osf-mcp@latest\n```\n\nOr from a local checkout:\n```powershell\ngo build -o bin\\osf.exe ./cmd/osf\ngo build -o bin\\osf-mcp.exe ./cmd/osf-mcp\n.\\scripts\\build.ps1\n```\n\n## Authentication\n\nSet `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.\n\n```powershell\n$env:OSF_TOKEN = '<your-token>'\n```\n\nFor guided token setup:\n\n```powershell\nosf auth login\n```\n\n## Quick Start\n\n```powershell\nosf --help\nosf auth whoami\nosf projects list\nosf projects get https://osf.io/abc12/\nosf components list abc12\nosf files list abc12\nosf files download --file <file-id> ./output/\nosf files download --tree abc12 ./output/\nosf files upload --node abc12 ./report.pdf\nosf search \"open science\"\nosf search \"open science\" --bibtex\nosf preprints list\nosf preprints search \"open science\" --provider osf\nosf resolve 10.1234/example\nosf registrations create abc12 --schema <schema-id> --title \"Analysis plan\"\nosf export abc12 --json\n```\n\n## MCP Server\n\n`osf-mcp` runs a stdio MCP server with read-only tools:\n`osf_whoami`, `osf_projects_list`, `osf_project_get`,\n`osf_components_list`, `osf_files_list`, `osf_contributors_list`,\n`osf_search`, `osf_preprints_list`, `osf_preprints_search`, and\n`osf_doi_resolve`.\n\nThe parity discovery tools are bounded and deterministic: `osf_search` requires\na non-empty query and accepts a limit from 1 to 100, while\n`osf_preprints_list` accepts an optional provider and the same bounded limit.\n`osf_preprints_search` requires a title query, accepts an optional provider, and\nreturns publication date, published state, DOI, and OSF HTML URL with a limit\nfrom 1 to 100. These tools return structured JSON through the MCP server and\nnever perform writes.\n\nOSF search results include stable IDs, title, abstract, keywords, year, and URL.\nUse `osf search <query> --bibtex` to emit deterministic BibTeX records for\nliterature-review workflows. The command does not resolve contributor names or\ndownload PDFs automatically.\n\nFor DataLad workflows, OSF CLI Go provides the general-purpose OSF API and\nsafe file primitives used around a dataset, including `osf export` and\n`osf files download --tree`. It does not install or configure DataLad, Git\nremotes, or git-annex special remotes; those integrations remain a separately\nscoped interoperability boundary.\n\nLocal development configs are included for GitHub Copilot, VS Code, Claude,\nCodex, Gemini CLI, and Qwen Code. Public registry metadata is in `server.json`\nand `registry/`.\n\n### Related MCP Servers\n\nOther maintained servers in the same Glama portfolio:\n\n- [FYI MCP](https://glama.ai/mcp/servers/edithatogo/fyi-cli) for freedom-of-information request workflows.\n- [Healthpoint MCP](https://glama.ai/mcp/servers/edithatogo/healthpoint-rs) for licensed health-service directory data.\n- [SourceRight](https://glama.ai/mcp/servers/edithatogo/sourceright) for reference and citation verification.\n\nRelated OSF ecosystem servers:\n\n- [OSF connector by pipeworx-io](https://glama.ai/mcp/connectors/io.github.pipeworx-io/osf) for hosted OSF connectivity.\n- [Paperclip](https://github.com/matsjfunke/paperclip) for multi-provider scholarly and OSF Preprints search.\n\n## Output Modes\n\nAll commands support `--output table|json` and `--json` shorthand:\n\n```powershell\nosf projects list --json\nosf auth whoami --output json\n```\n\n## Project Status\n\nThe 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.\n\n## Documentation\n\n- [Release checklist](docs/release-checklist.md)\n- [Documentation site source](mkdocs.yml)\n- [Install guide](docs/install.md)\n- [Usage guide](docs/usage.md)\n- [Command reference](docs/commands.md)\n- [Examples](docs/examples.md)\n- [Architecture](docs/architecture.md)\n- [Developer guide](docs/contributing.md)\n- [MCP roadmap](docs/mcp-roadmap.md)\n- [Contributing](CONTRIBUTING.md)\n\n## License\n\nApache 2.0 — see [LICENSE](LICENSE).\n\n## Citation\n\nIf you use this software in your research, please cite it using the metadata in [CITATION.cff](CITATION.cff).\n",
  "bytes": 6911,
  "sha": "095bb5071a81da78a6a6d5744c4e51ceae9f0370de46df6d22934710db1a640c",
  "repo_slug": "edithatogo/osf-cli-go",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_edithatogo_osf_cli_go_016e8d3b/readme"
}