Tools
Whitepapper exposes 25 MCP tools: 15 read-only and 10 write.
Read Tools (15)
get_workspace_overview
Paginated project and standalone-paper summaries for your entire workspace.
- Inputs:
projectLimit,projectCursor,standalonePaperLimit,standalonePaperCursor,projectFields,projectExcludeFields,paperFields,paperExcludeFields - Returns:
{ projects, projectsNextCursor, standalonePapers, standalonePapersNextCursor }
list_projects
Compact paginated list of owned projects.
- Inputs:
limit,cursor,fields,excludeFields - Returns:
{ items: Project[], nextCursor }
list_collections
Paginated collection summaries for a project.
- Inputs:
projectId,limit,cursor,fields,excludeFields - Returns:
{ items: Collection[], nextCursor }
list_papers
Paginated paper list scoped by project, collection, or status.
- Inputs:
projectId,collectionId,standalone,status,limit,cursor,includeBody,includeMetadata,fields,excludeFields - Returns:
{ items: Paper[], nextCursor }
get_project_by_id
Fetch a single project by ID with collections and standalone papers.
- Inputs:
projectId,includeStandalonePapers,includeCollections, field selectors - Returns: Full project document with children
get_project_by_slug
Fetch a project by slug (same shape as get_project_by_id).
- Inputs:
slug, same optional include flags - Returns: Full project document
get_collection_by_id
Fetch a collection by ID with paginated paper list.
- Inputs:
collectionId,includePapers,paperLimit,paperCursor,includeBody,includeMetadata, field selectors - Returns: Full collection document with papers
get_collection_by_slug
Fetch a collection by slug. Pass projectId for disambiguation.
- Inputs:
slug,projectId, same optional include flags - Returns: Full collection document
get_paper_by_id
Fetch a single paper by ID.
- Inputs:
paperId,includeBody,includeMetadata,fields,excludeFields - Returns: Full paper document
get_paper_by_slug
Fetch a paper by slug.
- Inputs:
slug,projectId,includeBody,includeMetadata,fields,excludeFields - Returns: Full paper document
get_papers_by_ids
Batch-read multiple papers by their IDs.
- Inputs:
paperIds: string[],includeBody,includeMetadata, field selectors - Returns: Papers array
get_collections_by_ids
Batch-read multiple collections by their IDs.
- Inputs:
collectionIds: string[], field selectors - Returns: Collections array
get_project_content_tree
Structured project tree with collections, standalone papers, and optionally papers per collection.
- Inputs:
projectId,includeCollectionPapers, pagination params - Returns: Structured tree
search_papers
Full-text search across titles, slugs, bodies, and metadata.
- Inputs:
query,projectId,collectionId,status,limit,includeBody,includeMetadata - Returns: Ranked compact paper results
resolve_slug_to_id
Convert slugs into exact IDs before follow-up calls.
- Inputs:
projectSlug,collectionSlug,paperSlug,projectId - Returns:
{ project, collection, paper }with compact summaries
Write Tools (10)
create_project
Create a new project.
- Inputs:
name,slug,description,contentGuidelines,logoUrl,isPublic - Returns: Full project document
update_project
Update an existing project's fields.
- Inputs:
projectId,name,slug,description,contentGuidelines,logoUrl,isPublic - Returns: Full project document
delete_project
Permanently delete a project and all its content.
- Inputs:
projectId - Returns:
{ ok: true }
create_collection
Create a collection inside a project.
- Inputs:
projectId,name,description,slug,isPublic - Returns: Full collection document
update_collection
Update an existing collection.
- Inputs:
collectionId,name,slug,description,isPublic - Returns: Full collection document
delete_collection
Permanently delete a collection and all its papers.
- Inputs:
collectionId - Returns:
{ ok: true }
create_paper
Create a new paper. Pass collectionId or projectId to place it.
- Inputs:
title,slug,body,projectId,collectionId,thumbnailUrl,status,metadata - Returns: Full paper document
update_paper
Update an existing paper. Also used to publish (set status: "published") or move between projects (set projectId/collectionId).
- Inputs:
paperId,title,slug,body,projectId,collectionId,thumbnailUrl,status,metadata - Returns: Full paper document
delete_paper
Permanently delete a paper.
- Inputs:
paperId - Returns:
{ ok: true }
upsert_paper_by_slug
Create or update a paper keyed by slug. If the slug exists the paper is updated, otherwise a new paper is created.
- Inputs:
slug,title,body,projectId,collectionId,thumbnailUrl,status,metadata - Returns: Full paper document
Tool Count Summary
| Category | Count |
|---|---|
| Read | 15 |
| Write | 10 |
| Total | 25 |
Compare with the previous version (27 tools): publish_paper and move_paper were removed because update_paper already covers both use cases. Delete tools no longer require a confirm flag — they execute immediately, consistent with the main app API.
Related
- MCP Quickstart — Get your MCP URL.
- Dev API Quickstart — Project-scoped API access.