Scientific Context Protocol.
Project description
Scientific Context Protocol
This repository is the official implementation of the Scientific Context Protocol.
The installable scicon Python package serves hand-authored SCP packages through an MCP interface.
A target research repository installs scicon, authors a structured scp-package/ directory, and exposes that package to AI agents through scicon serve.
The server validates structured package files and serves grounded answers through MCP.
Current status
This repository is currently in its MVP phase. This section is the source of truth for the repository's current features and limitations.
Features
- Package schema objects and closed evidence/predicate vocabularies.
- Path resolution for
--package-dir,SCP_PACKAGE_DIR, and./scp-package. - A typed YAML loader for hand-authored package files.
- Validation for IDs, statuses, links, predicate legality, section references, and uncertainty.
- Pure query functions for claims, figures, datasets, methods, code, assumptions, related objects, and resources.
- A thin FastMCP adapter and CLI subcommands:
scicon init,scicon serve, andscicon validate.
Limitations
- Mining and conversion are mocked, so humans author the package directly.
- At serve time, the server reads package YAML, not raw papers, notebooks, datasets, or repository files.
- The repository does not implement automatic artifact mining or general conversion for arbitrary repositories.
- Controlled operations remain final-product scope: the current MCP interface does not execute commands, download data, or modify files.
Pipeline
scientific output (SCP input)
-> scp-package/
-> MCP interface
-> grounded SCP answers
The scientific output is conceptual input for package authors.
Install and run
Install from this repository in a Python 3.12 environment:
pip install -e .
Validate the shipped example package:
scicon validate --package-dir examples/scp-package
Run the MCP server over stdio:
scicon serve --package-dir examples/scp-package
Register in a target repo
In a target repository, create a hand-authored scp-package/ directory and run:
scicon init .
scicon init writes MCP registration files plus agent instructions, skills, and prompts that tell supported coding agents to query the scp MCP tools first.
The command is idempotent and preserves user content outside its managed markers.
It registers scicon serve with the relative scp-package path.
See docs/init.md for generated files and docs/mcp-server.md for manual MCP registration and path resolution.
Example package
examples/scp-package is the template and fixture shipped with this repository.
It contains one small neuroscience-style package with claims, figures, datasets, methods, code artifacts, assumptions, related work, operation recipes, and typed provenance edges.
Documentation
Start here
- docs/overview.md: Vision, final-product context, and trust model.
- docs/concepts.md: Short glossary.
Author and validate SCP packages
- docs/package-schema.md: Package files, objects, statuses, and predicate vocabulary.
- docs/validation.md: Validation checks and report behavior.
Bootstrap and serve SCP packages
- docs/init.md: Target-repo bootstrap, managed files, agent targeting, and refresh/uninstall behavior.
- docs/mcp-server.md: MCP install, registration, tools, resources, and path resolution.
Contribute
- CONTRIBUTING.md: Shared contributor policies, checks, and Git conventions.
- docs/architecture.md: Package layout, layer boundaries, serving model, and interface contract.
- docs/protocol.md: Final-protocol context and expansion rules.
- docs/releasing.md: Release automation, versioning, changelog, and PyPI sequencing.
- docs/coding-agent-setup.md: Project-local coding-agent setup guidance.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scicon-0.1.0.tar.gz.
File metadata
- Download URL: scicon-0.1.0.tar.gz
- Upload date:
- Size: 64.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e18e881e491f11c3f50977e22955b9f834d4966af58db7fee32a29d46dd7a46a
|
|
| MD5 |
490321cb1128689d653059fbf5e44bd8
|
|
| BLAKE2b-256 |
906734b5478d51d0bed4e30f55a7b4bca0c3ebeca3b296ed7428811f77788107
|
Provenance
The following attestation bundles were made for scicon-0.1.0.tar.gz:
Publisher:
publish-to-pypi.yaml on twinapse/scicon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scicon-0.1.0.tar.gz -
Subject digest:
e18e881e491f11c3f50977e22955b9f834d4966af58db7fee32a29d46dd7a46a - Sigstore transparency entry: 2011982392
- Sigstore integration time:
-
Permalink:
twinapse/scicon@afb4e9e6a4f1387ce974a394cf043f09bf9a1b55 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/twinapse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yaml@afb4e9e6a4f1387ce974a394cf043f09bf9a1b55 -
Trigger Event:
push
-
Statement type:
File details
Details for the file scicon-0.1.0-py3-none-any.whl.
File metadata
- Download URL: scicon-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
038e89972ae5df42f5d10700ad9b7be4022c6fa1d10d035e7cee235c768a22bc
|
|
| MD5 |
b46053b26b092354f9d570fbe5592ecf
|
|
| BLAKE2b-256 |
c59a39473c559407b997ea2b16684ba5f9912637929598b8a82da7c842eed2a3
|
Provenance
The following attestation bundles were made for scicon-0.1.0-py3-none-any.whl:
Publisher:
publish-to-pypi.yaml on twinapse/scicon
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scicon-0.1.0-py3-none-any.whl -
Subject digest:
038e89972ae5df42f5d10700ad9b7be4022c6fa1d10d035e7cee235c768a22bc - Sigstore transparency entry: 2011982557
- Sigstore integration time:
-
Permalink:
twinapse/scicon@afb4e9e6a4f1387ce974a394cf043f09bf9a1b55 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/twinapse
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yaml@afb4e9e6a4f1387ce974a394cf043f09bf9a1b55 -
Trigger Event:
push
-
Statement type: