PINNACLE Protein-Protein Interaction Tool#
TOU validation and deployment status (2026-08-16)#
Loopback discovery and retrieval passed against a deterministic safe weights-only fixture with three bounded embeddings. Four simultaneous fixture calls passed with event-loop offloading and serialized provider state. Production PINNACLE artifacts, public publication, cross-user isolation, scale, and scientific-value validation remain incomplete. Authenticated private Platform import and owner testing passed on 2026-08-16; public publication and independent-caller authorization/isolation remain untested.
Operation:
run_pinnacle_ppi_retrievalStart:
python -m tooluniverse.remote.pinnacle.pinnacle_toolEndpoint:
http://127.0.0.1:7001/mcpProvider configuration: set
PINNACLE_DATA_PATHto the reviewed provider artifact root; the weights-only embedding checkpoint initializes once per process.TOU check:
tu doctor --forward http://127.0.0.1:7001/mcp --jsonPrivate relay:
tu serve --share --forward http://127.0.0.1:7001/mcp --name validation-pinnacle --workers 1
Non-loopback binding requires TOOLUNIVERSE_API_TOKEN; otherwise keep the server on loopback. The relay requires TOOLUNIVERSE_SERVICE_KEY. The current result is an artifact-contract pass, not production-model validation.
New-user check: python scripts/remote_validation/setup_skill_preflight.py --implementation pinnacle. Add --check-provider-env before launch, --live after launch, and --check-connect-prereqs before sharing. Live preflight checks exact MCP discovery only; it does not run or validate a model. The pinned relay SDK is not on PyPI and currently requires authorized GitHub repository access plus a configured SSH key, so a working local MCP server does not by itself prove that a new operator can share it.
The authenticated 2026-08-16 Platform matrix found all 30 private owner relays online and all 41 operations discoverable. This implementation was imported as unpublished owner draft(s), configured with a 120-second timeout, and invoked through /expert-sessions/{id}/test. Across the set, 38 unique operations passed return-schema and semantic validation; the three USPTO operations returned exact provider HTTP 403 and remain credential-blocked. Public publication, independent-caller authorization/isolation, broad saturation, and persistent supervision were not tested.
Overview#
The PINNACLE tool provides access to cell-type-specific protein-protein interaction embeddings. These embeddings capture functional relationships between proteins in different cellular contexts, enabling advanced analysis for drug discovery, disease research, and systems biology.
PINNACLE generates dense vector representations of proteins that encode both direct physical interactions and functional associations within specific cell types. This contextualization allows for more accurate modeling of biological processes in tissue-specific environments.
Data Acquisition#
1. Download PINNACLE Embeddings#
The PINNACLE embeddings are hosted on Hugging Face at: https://huggingface.co/datasets/mims-harvard/ToolSpace
Use the following shell commands to download only the PINNACLE files from the pinnacle_cge directory:
# Install CLI if not already
uvx --from huggingface_hub hf
# Download only the pinnacle_cge folder
uvx --from huggingface_hub hf download mims-harvard/ToolSpace \
--repo-type dataset \
--include "pinnacle_cge/*" \
--local-dir ./path/to/your/pinnacle/
2. Set Environment Variable#
After downloading, set the PINNACLE_DATA_PATH environment variable:
export PINNACLE_DATA_PATH="/path/to/ToolSpace"
Tool Input and Output#
Input Parameters#
Parameter |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
Target cell type for embedding retrieval |
|
string |
No |
Custom path to embedding file (optional) |
The tool performs fuzzy matching to handle various naming conventions, spaces, hyphens, and capitalization differences.
Output Format#
The tool returns a JSON object with the following structure:
Successful Response#
{
"embeddings": {
"TP53": [0.1234, -0.5678, 0.9012, ...],
"EGFR": [-0.2345, 0.6789, -0.1234, ...],
"BRCA1": [0.3456, -0.7890, 0.2345, ...],
"...": "..."
},
"context_info": [
"Successfully retrieved embeddings for 15234 proteins/genes.",
"Embedding dimensionality: 256 features per protein.",
"Cell type context: b_cell (matched and processed)."
]
}
Embedding Properties#
Dimensionality: A 328-dimensional vector (200 structure-based protein representation + 128 contextaware/-free protein representation)
Coverage: 394,760 protein representations from 156 cell type contexts across 24 tissues
Format: Dense numerical vectors (list of floats)
MCP Server Setup#
Prerequisites#
# create a uv virtual enviroment for COMPASS setup
uv venv pinnacle --python 3.10
source pinnacle/bin/activate
uv pip install -r requirements.txt
Configuration#
Set up the environment:
# Ensure PINNACLE_DATA_PATH points to your ToolSpace directory
export PINNACLE_DATA_PATH="/path/to/ToolSpace"
Verify embedding files exist:
ls -la $PINNACLE_DATA_PATH/pinnacle_embeds/ppi_embed_dict.pth
ls -la $PINNACLE_DATA_PATH/pinnacle_cge/
Running the MCP Server#
# Run the MCP server from the ToolUniverse repository root
python -m tooluniverse.remote.pinnacle.pinnacle_tool
Server Configuration#
Host:
127.0.0.1(loopback; use the outbound relay for Connect)Port:
7001(configured to avoid conflicts)Transport:
streamable-httpMode: Stateless HTTP for scalability
A deliberate non-loopback bind requires TOOLUNIVERSE_API_TOKEN; do not
expose the unauthenticated provider directly.