Add plugin bio-research-forge - #32
Conversation
hetaoBackend
left a comment
There was a problem hiding this comment.
Current head 05cd207 passes repository validation and the bundled protocol/privacy smoke tests, but public-bio-api still has credential and resource-boundary blockers. In plugins/Presisitence/bio-research-forge/mcp/public-bio-api.mjs:283-299, response.text() buffers the entire response before enforcing MAX_RESPONSE_BYTES; a permitted endpoint/intermediary can therefore cause unbounded memory use before rejection. Enforce the byte cap while streaming and abort when exceeded. The NCBI_API_KEY is also embedded in the outbound URL at :208-209 and the returned sourceUrl at :319-328, exposing the credential to the MCP client/logs; redact it from all returned URLs and errors. Finally set redirect:"error" or validate every redirect target against the same allowlist, otherwise an allowlisted endpoint can redirect to localhost/private address space. [code]smith is SKIPPED.
|
@hetaoBackend Thanks for the review — addressed on the latest push (
Could you take another look when you have a moment? |
What changes
New Plugin
Presisitence/bio-research-forge— evidence-first life-science workbench: public bio APIs, local RNA figures (PNG/PDF + plotted data), bounded PyMOL/SnapGene/Cytoscape/Fiji actions, and independent review skills.Path:
plugins/Presisitence/bio-research-forge. Standalone source: https://github.com/Presisitence/bio-research-forge (AGPL-3.0-or-later).This PR only adds that directory. Existing
plant-public,rnaseq-plot, andmicrobeare unchanged.User value
A MiniMax Code user can look up public gene/protein/structure records with provenance, draw local RNA volcano/PCA/heatmap figures from their own tables (no upload), and gate design or manuscript work through specialist Skills.
Example prompt:
Expected result:
bio_api_querythenrna_figure_create; API replies include source URL and retrieval time; local CSV is not uploaded; PNG/PDF/plot-data paths returned.Plugin submission checklist
plugins/<github-owner>/<plugin-name>.plugin.jsonname matches the Plugin directory.README.mdincludes a real example prompt and expected result.LICENSEandplugin.jsondeclare an open-source license.validateHostedPluginDirectory).Dependencies and platforms
mcp.json:node,cwd: ${PLUGIN_ROOT}).NCBI_API_KEY(environment only; not shipped).Rscript(orRSCRIPT_EXE) plus jsonlite, ggplot2, pheatmap for RNA figures.PYMOL_EXE/SNAPGENE_EXE/CYTOSCAPE_EXE/FIJI_EXE). Software is never installed by the plugin.Network and data behavior
public-bio-apiis read-only allowlist:eutils.ncbi.nlm.nih.gov,rest.uniprot.org,www.ebi.ac.uk(InterPro, Europe PMC),rest.ensembl.org,alphafold.ebi.ac.uk,data.rcsb.org,string-db.org,jaspar.elixir.no,solgenomics.net(generic BrAPI crop-name metadata). Arbitrary URLs, local files, credentials, and pepper-specific queries are blocked.rna-figureandlocal-bio-toolsare local-only. No telemetry. No credentials in the package.Evidence
License note: this Plugin keeps the upstream AGPL-3.0-or-later license (DAWN Science provenance; see ATTRIBUTION.md). It is not relicensed to MIT like plant-public / rnaseq-plot / microbe.
Overlap note: public-API coverage overlaps plant-public; RNA volcano/PCA/heatmap overlap rnaseq-plot. This Plugin is a broader workbench (skills + three MCP servers) rather than a replacement of those plugins.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.