protocolsio-integration by davila7/claude-code-templates
npx skills add https://github.com/davila7/claude-code-templates --skill protocolsio-integrationProtocols.io 是一个用于开发、共享和管理科学实验方案的综合性平台。本技能提供了与 protocols.io API v3 的完整集成,支持以编程方式访问实验方案、工作空间、讨论、文件管理和协作功能。
在以下任何涉及 protocols.io 的场景中使用此技能:
本技能在五个主要功能领域提供全面的指导:
使用访问令牌和 OAuth 流程管理 API 认证。包括客户端访问令牌(用于个人内容)和 OAuth 令牌(用于多用户应用程序)。
关键操作:
参考: 阅读 references/authentication.md 以获取详细的认证流程、OAuth 实现和安全最佳实践。
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
从创建到发布的完整实验方案生命周期管理。
关键操作:
参考: 阅读 references/protocols_api.md 以获取全面的实验方案管理指导,包括 API 端点、参数、常见工作流和示例。
通过评论和讨论促进社区参与。
关键操作:
参考: 阅读 references/discussions.md 以获取讨论管理、评论线程和协作工作流指导。
在具有基于角色的权限的团队工作空间内组织实验方案。
关键操作:
参考: 阅读 references/workspaces.md 以获取工作空间组织、权限管理和团队协作模式指导。
上传、组织和管理与实验方案关联的文件。
关键操作:
参考: 阅读 references/file_manager.md 以获取文件上传流程、组织策略和存储管理指导。
补充功能,包括个人资料、通知和导出。
关键操作:
参考: 阅读 references/additional_features.md 以获取个人资料管理、发布发现、实验跟踪和数据导出指导。
在使用任何 protocols.io API 功能之前:
references/authentication.md 以获取详细的认证流程Authorization: Bearer YOUR_TOKEN确定哪个功能领域满足您的需求:
references/protocols_api.mdreferences/workspaces.mdreferences/discussions.mdreferences/file_manager.mdreferences/additional_features.md按照相关参考文件中的指导进行操作:
所有 API 请求使用基础 URL:
https://protocols.io/api/v3
所有请求都需要 Authorization 请求头:
Authorization: Bearer YOUR_ACCESS_TOKEN
大多数端点支持 JSON 请求/响应格式,使用 Content-Type: application/json。
许多端点支持 content_format 参数来控制实验方案内容的返回方式:
json:Draft.js JSON 格式(默认)html:HTML 格式markdown:Markdown 格式作为查询参数包含:?content_format=html
请注意 API 速率限制:
对于速率限制错误(HTTP 429),请实施指数退避策略。
从 protocols.io 分析现有实验方案:
GET /protocols 和关键词查找相关实验方案GET /protocols/{protocol_id} 获取完整详情GET /protocols/{id}/comments 获取用户反馈参考文件:protocols_api.md,discussions.md
创建新实验方案并使用 DOI 发布:
authentication.md)POST /protocols 并附带标题和描述POST /protocols/{id}/stepsPOST /protocols/{id}/publish 分配 DOI参考文件:protocols_api.md,authentication.md
设置团队实验方案管理:
workspaces.md)file_manager.md)POST /workspaces/{id}/protocols 创建团队实验方案参考文件:workspaces.md,file_manager.md,protocols_api.md,discussions.md,additional_features.md
跟踪实验方案的执行和结果:
file_manager.md)POST /protocols/{id}/runs 记录执行过程参考文件:additional_features.md,file_manager.md,protocols_api.md
在研究工作中查找和引用实验方案:
GET /publications 查询已发布的实验方案POST /protocols/{id}/bookmarks 保存有用的实验方案参考文件:protocols_api.md,additional_features.md
import requests
token = "YOUR_ACCESS_TOKEN"
headers = {"Authorization": f"Bearer {token}"}
# Search for CRISPR protocols
response = requests.get(
"https://protocols.io/api/v3/protocols",
headers=headers,
params={
"filter": "public",
"key": "CRISPR",
"page_size": 10,
"content_format": "html"
}
)
protocols = response.json()
for protocol in protocols["items"]:
print(f"{protocol['title']} - {protocol['doi']}")
import requests
token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
# Create protocol
data = {
"title": "CRISPR-Cas9 Gene Editing Protocol",
"description": "Comprehensive protocol for CRISPR gene editing",
"tags": ["CRISPR", "gene editing", "molecular biology"]
}
response = requests.post(
"https://protocols.io/api/v3/protocols",
headers=headers,
json=data
)
protocol_id = response.json()["item"]["id"]
print(f"Created protocol: {protocol_id}")
import requests
token = "YOUR_ACCESS_TOKEN"
headers = {"Authorization": f"Bearer {token}"}
# Upload file
with open("data.csv", "rb") as f:
files = {"file": f}
data = {
"folder_id": "root",
"description": "Experimental results",
"tags": "experiment,data,2025"
}
response = requests.post(
"https://protocols.io/api/v3/workspaces/12345/files/upload",
headers=headers,
files=files,
data=data
)
file_id = response.json()["item"]["id"]
print(f"Uploaded file: {file_id}")
为 API 请求实施稳健的错误处理:
import requests
import time
def make_request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
elif response.status_code == 429: # Rate limit
retry_after = int(response.headers.get('Retry-After', 60))
time.sleep(retry_after)
continue
elif response.status_code >= 500: # Server error
time.sleep(2 ** attempt) # Exponential backoff
continue
else:
response.raise_for_status()
except requests.exceptions.RequestException as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)
raise Exception("Max retries exceeded")
根据您的任务加载相应的参考文件:
authentication.md:OAuth 流程、令牌管理、速率限制protocols_api.md:实验方案 CRUD、步骤、材料、发布、PDFdiscussions.md:评论、回复、协作workspaces.md:团队工作空间、权限、组织file_manager.md:文件上传、文件夹、存储管理additional_features.md:个人资料、发布、实验、通知当需要特定功能时,从 references/ 目录读取参考文件。
认证问题:
Bearer YOUR_TOKEN速率限制:
权限错误:
文件上传失败:
有关详细的故障排除指导,请参阅涵盖每个功能领域的特定参考文件。
每周安装数
131
代码仓库
GitHub 星标数
23.4K
首次出现
Jan 21, 2026
安全审计
安装于
claude-code115
opencode107
cursor103
gemini-cli103
antigravity98
codex92
Protocols.io is a comprehensive platform for developing, sharing, and managing scientific protocols. This skill provides complete integration with the protocols.io API v3, enabling programmatic access to protocols, workspaces, discussions, file management, and collaboration features.
Use this skill when working with protocols.io in any of the following scenarios:
This skill provides comprehensive guidance across five major capability areas:
Manage API authentication using access tokens and OAuth flows. Includes both client access tokens (for personal content) and OAuth tokens (for multi-user applications).
Key operations:
Reference: Read references/authentication.md for detailed authentication procedures, OAuth implementation, and security best practices.
Complete protocol lifecycle management from creation to publication.
Key operations:
Reference: Read references/protocols_api.md for comprehensive protocol management guidance, including API endpoints, parameters, common workflows, and examples.
Enable community engagement through comments and discussions.
Key operations:
Reference: Read references/discussions.md for discussion management, comment threading, and collaboration workflows.
Organize protocols within team workspaces with role-based permissions.
Key operations:
Reference: Read references/workspaces.md for workspace organization, permission management, and team collaboration patterns.
Upload, organize, and manage files associated with protocols.
Key operations:
Reference: Read references/file_manager.md for file upload procedures, organization strategies, and storage management.
Supplementary functionality including profiles, notifications, and exports.
Key operations:
Reference: Read references/additional_features.md for profile management, publication discovery, experiment tracking, and data export.
Before using any protocols.io API functionality:
references/authentication.md for detailed authentication proceduresAuthorization: Bearer YOUR_TOKENDetermine which capability area addresses your needs:
references/protocols_api.mdreferences/workspaces.mdreferences/discussions.mdreferences/file_manager.mdreferences/additional_features.mdFollow the guidance in the relevant reference files:
All API requests use the base URL:
https://protocols.io/api/v3
All requests require the Authorization header:
Authorization: Bearer YOUR_ACCESS_TOKEN
Most endpoints support JSON request/response format with Content-Type: application/json.
Many endpoints support a content_format parameter to control how protocol content is returned:
json: Draft.js JSON format (default)html: HTML formatmarkdown: Markdown formatInclude as query parameter: ?content_format=html
Be aware of API rate limits:
Implement exponential backoff for rate limit errors (HTTP 429).
To analyze an existing protocol from protocols.io:
GET /protocols with keywords to find relevant protocolsGET /protocols/{protocol_id}GET /protocols/{id}/comments for user feedbackReference files : protocols_api.md, discussions.md
To create a new protocol and publish with DOI:
authentication.md)POST /protocols with title and descriptionPOST /protocols/{id}/stepsPOST /protocols/{id}/publishReference files : protocols_api.md, authentication.md
To set up team protocol management:
workspaces.md)file_manager.md)POST /workspaces/{id}/protocols for team protocolsReference files : workspaces.md, file_manager.md, protocols_api.md, discussions.md, additional_features.md
To track protocol executions and results:
file_manager.md)POST /protocols/{id}/runsReference files : additional_features.md, file_manager.md, protocols_api.md
To find and cite protocols in research:
GET /publicationsPOST /protocols/{id}/bookmarksReference files : protocols_api.md, additional_features.md
import requests
token = "YOUR_ACCESS_TOKEN"
headers = {"Authorization": f"Bearer {token}"}
# Search for CRISPR protocols
response = requests.get(
"https://protocols.io/api/v3/protocols",
headers=headers,
params={
"filter": "public",
"key": "CRISPR",
"page_size": 10,
"content_format": "html"
}
)
protocols = response.json()
for protocol in protocols["items"]:
print(f"{protocol['title']} - {protocol['doi']}")
import requests
token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
# Create protocol
data = {
"title": "CRISPR-Cas9 Gene Editing Protocol",
"description": "Comprehensive protocol for CRISPR gene editing",
"tags": ["CRISPR", "gene editing", "molecular biology"]
}
response = requests.post(
"https://protocols.io/api/v3/protocols",
headers=headers,
json=data
)
protocol_id = response.json()["item"]["id"]
print(f"Created protocol: {protocol_id}")
import requests
token = "YOUR_ACCESS_TOKEN"
headers = {"Authorization": f"Bearer {token}"}
# Upload file
with open("data.csv", "rb") as f:
files = {"file": f}
data = {
"folder_id": "root",
"description": "Experimental results",
"tags": "experiment,data,2025"
}
response = requests.post(
"https://protocols.io/api/v3/workspaces/12345/files/upload",
headers=headers,
files=files,
data=data
)
file_id = response.json()["item"]["id"]
print(f"Uploaded file: {file_id}")
Implement robust error handling for API requests:
import requests
import time
def make_request_with_retry(url, headers, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
elif response.status_code == 429: # Rate limit
retry_after = int(response.headers.get('Retry-After', 60))
time.sleep(retry_after)
continue
elif response.status_code >= 500: # Server error
time.sleep(2 ** attempt) # Exponential backoff
continue
else:
response.raise_for_status()
except requests.exceptions.RequestException as e:
if attempt == max_retries - 1:
raise
time.sleep(2 ** attempt)
raise Exception("Max retries exceeded")
Load the appropriate reference file based on your task:
authentication.md : OAuth flows, token management, rate limitingprotocols_api.md : Protocol CRUD, steps, materials, publishing, PDFsdiscussions.md : Comments, replies, collaborationworkspaces.md : Team workspaces, permissions, organizationfile_manager.md : File upload, folders, storage managementadditional_features.md : Profiles, publications, experiments, notificationsTo load a reference file, read the file from the references/ directory when needed for specific functionality.
Authentication Issues:
Bearer YOUR_TOKENRate Limiting:
Permission Errors:
File Upload Failures:
For detailed troubleshooting guidance, refer to the specific reference files covering each capability area.
Weekly Installs
131
Repository
GitHub Stars
23.4K
First Seen
Jan 21, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykFail
Installed on
claude-code115
opencode107
cursor103
gemini-cli103
antigravity98
codex92
通过 LiteLLM 代理让 Claude Code 对接 GitHub Copilot 运行 | 高级变通方案指南
40,000 周安装
GitHub SEO 优化指南:寄生虫SEO、GEO与精选列表创建,提升技术项目可见性
105 周安装
Claude技能创建器教程:AI技能开发与迭代优化全流程指南
199 周安装
Zod TypeScript 模式验证库:运行时数据验证与静态类型推断
199 周安装
React Native 测试模式与工具:TDD、工厂模式、模拟模块与自定义渲染函数
197 周安装
Hyva Create Module:快速创建 Magento 2 模块的 AI 工具
196 周安装
LlamaGuard AI 内容审核模型 - 7B 参数安全分类,过滤暴力、犯罪等有害内容
196 周安装