Claude-skill-registry journal-api
Interact with the Journal API to manage projects, documents, tasks, and workspaces. Use when the user mentions journal, projects, documents, tasks, workspaces, task identifiers like JO-123, or needs to access Journal data.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/journal-api" ~/.claude/skills/majiayu000-claude-skill-registry-journal-api && rm -rf "$T"
skills/data/journal-api/SKILL.mdJournal API Skill
This skill enables interaction with the Journal application - a project management and documentation platform for software teams.
Overview
Journal organizes work into a hierarchy:
Organization ├── Workspaces (team spaces, e.g., "Engineering", "Design") │ └── Documents (workspace-scoped context) ├── Projects (individual initiatives with status tracking) │ ├── Documents (PRDs, specs, research notes) │ └── Tasks (work items with implementation plans) └── Global Documents (organization-wide context)
Core Entities
| Entity | Description | Identifier |
|---|---|---|
| Workspace | Top-level team container | Slug (e.g., ) |
| Project | Initiative with status, owner, summary | Slug (e.g., ) |
| Document | Rich text content (markdown) | Slug (e.g., ) |
| Task | Work item with status, priority, assignee | Identifier (e.g., ) |
Document Types
- Org-level strategy and guidelinesorganization_context
- PRDs, solution docs, project specsproject_context
- Team-shared context and standardsworkspace_context
- Saved web pages for referenceclipped_page
- Technical specs for tasksimplementation_plan
Task Statuses
backlog → to_do → in_progress → in_review → done | cancelled
Task Priorities
urgent | high | medium | low | none (unassigned)
API Configuration
Base URL: http://localhost:3001 MCP Endpoint: POST /api/mcp/request Required Headers: Content-Type: application/json Accept: application/json, text/event-stream x-mcp-api-key: <your-api-key>
Available MCP Tools
Projects
get_project_context
get_project_contextGet project overview including name, status, summary, and owner.
Input:
(required): Journal URL containing project pathurl
Example:
{ "name": "get_project_context", "arguments": { "url": "https://journal.one/projects/context-engine" } }
Returns: Project id, name, slug, icon, summary, status, owner, timestamps
Documents
get_document
get_documentFetch full markdown content of a document.
Input:
(required): Full document URLurl
URL Patterns:
- Global:
https://journal.one/documents/<slug> - Project:
https://journal.one/projects/<project>/documents/<slug> - Workspace:
https://journal.one/workspaces/<workspace>/documents/<slug>
Returns: Document id, name, slug, type, markdown content, metadata, owner, timestamps
list_project_documents
list_project_documentsList all documents within a project.
Input:
(required): Any URL containing the project pathurl
(optional): Filter by document typetype
Returns: Array of documents with id, name, slug, type, owner, timestamps
Tasks
get_task
get_taskFetch task details including implementation plan if available.
Input:
(required): Task identifier (e.g.,task
) or full URLJO-123
Returns:
- Task metadata: id, identifier, name, slug, status, priority, description
- Assignee, due date, labels, project name
- Technical spec (if exists)implementationPlan.markdown
,commentCount
- For follow-up queriesresourceCount
Important: When an implementation plan exists, follow it closely. Only deviate with explicit user approval.
get_task_comments
get_task_commentsFetch comments on a task with pagination.
Input:
(required): Task identifier or URLtask
(optional): Get replies to specific commentparentCommentId
(optional): 1-50, default 20limit
(optional): For paginationoffset
get_task_resources
get_task_resourcesFetch resources attached to a task (GitHub PRs, Slack messages, Figma files, linked documents).
Input:
(required): Task identifier or URLtask
(optional): 1-50, default 20limit
(optional): For paginationoffset
Current Limitations
⚠️ The following operations are NOT available via MCP:
| Operation | Workaround |
|---|---|
| List all tasks | Must know specific task ID (JO-xxx) |
| List all projects | Must know project slug |
| List workspaces | Must know workspace slug |
| Search across entities | Not available |
| Create/update tasks | Use tRPC API directly |
| Create/update documents | Use tRPC API directly |
Cannot answer questions like:
- "How many tasks are in progress?"
- "What projects exist?"
- "Find all tasks assigned to John"
- "Search for documents about authentication"
Example Workflows
Get Task and Implementation Plan
1. get_task(task: "JO-123") → Returns task details + implementationPlan.markdown 2. If commentCount > 0: get_task_comments(task: "JO-123") 3. If resourceCount > 0: get_task_resources(task: "JO-123")
Explore a Project
1. get_project_context(url: ".../projects/my-project") → Returns project overview 2. list_project_documents(url: ".../projects/my-project") → Returns all documents in project 3. get_document(url: ".../projects/my-project/documents/prd") → Returns full document content
MCP Request Format
All MCP calls use JSON-RPC 2.0:
curl -X POST http://localhost:3001/api/mcp/request \ -H "Content-Type: application/json" \ -H "Accept: application/json, text/event-stream" \ -H "x-mcp-api-key: YOUR_API_KEY" \ -d '{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "TOOL_NAME", "arguments": { ... } }, "id": 1 }'
Error Handling
| Error | Meaning |
|---|---|
| API key not found or disabled |
| Task doesn't exist or is deleted/draft |
| Project doesn't exist or no access |
| Document doesn't exist or no access |
| Missing header |
Tips for Agents
- Task identifiers follow pattern:
(e.g.,XX-NNN
,JO-123
)ENG-456 - Always check implementation plans: Tasks may have detailed tech specs
- Use comments/resources counts: Fetch additional context only when available
- URL flexibility: Tools accept full URLs or just slugs/identifiers
- Project context first: Get project overview before diving into documents