Planview MCP Server
Provides Okta passwordless authentication for accessing Planview Enterprise One, allowing users to authenticate via Okta Verify without passwords.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Planview MCP Server list my work items"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Planview MCP Server
MCP server for Planview Enterprise One with Okta passwordless authentication and automated timesheet completion.
What This Does
🔐 Authenticate to Planview using Okta Verify (no passwords)
📊 Access Planview API (work items, projects, users)
🤖 Auto-complete timesheets with
/complete-timesheetscommand
Related MCP server: HR System MCP Server
Quick Start
Step 1: Clone and Install
git clone <your-repo-url>
cd planview-mcp
npm install
npx playwright install chromiumStep 2: Configure
Linux/macOS:
cp .mcp.json.example .mcp.json
nano .mcp.json # or use any text editorWindows:
copy .mcp.json.windows.example .mcp.json
notepad .mcp.json # or use any text editorEdit the env section in .mcp.json with your Planview details:
PLANVIEW_BASE_URL: Your company's Planview URLOKTA_USERNAME: Your email address
Step 3: Authenticate
npm run okta-loginThis opens a browser and waits for you to approve the Okta Verify notification on your phone.
Step 4: Build and Restart Claude
npm run buildThen restart Claude Code to load the MCP server.
Usage
Available Commands
Command | Description |
| Auto-fills all overdue timesheets (8h/day, 40h/week) |
Available Tools
Use these directly in Claude:
planview_get_work_items- List work itemsplanview_get_projects- List projectsplanview_get_current_user- Get your user infoplanview_update_work_item- Update a work itemplanview_execute_request- Make custom API calls
More Examples
See EXAMPLES.md for detailed usage examples including:
Timesheet automation workflows
Work item management
Custom API requests
Creating your own commands
Troubleshooting tips
How It Works
This setup uses two MCP servers:
Planview MCP (this repo) - Handles Planview API and authentication
Playwright MCP (auto-installed) - Handles browser automation for timesheets
Both are configured in your .mcp.json file. Playwright MCP downloads automatically when Claude starts.
Authentication flow:
You run
npm run okta-loginonceCreates
planview-auth.jsonwith your sessionBoth MCP servers use this session file
Re-authenticate when session expires
Troubleshooting
Problem | Solution |
"Authentication error" | Run |
"Can't see browser during login" | Add |
Windows npx warning | Use |
"Timesheet automation fails" | Check |
"Missing PLANVIEW_BASE_URL" | Check the |
Configuration
Local Setup (Recommended)
Use .mcp.json in this repo directory.
Linux/macOS: Uses npx directly
{
"mcpServers": {
"planview": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"PLANVIEW_BASE_URL": "https://yourcompany.pvcloud.com/planview",
"PLANVIEW_STORAGE_STATE": "planview-auth.json",
"OKTA_USERNAME": "your.email@company.com"
}
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}Windows: Requires cmd /c wrapper
{
"mcpServers": {
"planview": {
"command": "node",
"args": ["dist/index.js"],
"env": {
"PLANVIEW_BASE_URL": "https://yourcompany.pvcloud.com/planview",
"PLANVIEW_STORAGE_STATE": "planview-auth.json",
"OKTA_USERNAME": "your.email@company.com"
}
},
"playwright": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@playwright/mcp@latest"]
}
}
}Global Setup (All Projects)
Add to Claude Code MCP settings with absolute paths.
Linux/macOS:
{
"mcpServers": {
"planview": {
"command": "node",
"args": ["/full/path/to/planview-mcp/dist/index.js"],
"env": {
"PLANVIEW_BASE_URL": "https://yourcompany.pvcloud.com/planview",
"PLANVIEW_STORAGE_STATE": "/full/path/to/planview-mcp/planview-auth.json",
"OKTA_USERNAME": "your.email@company.com"
}
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}Windows:
{
"mcpServers": {
"planview": {
"command": "node",
"args": ["C:\\full\\path\\to\\planview-mcp\\dist\\index.js"],
"env": {
"PLANVIEW_BASE_URL": "https://yourcompany.pvcloud.com/planview",
"PLANVIEW_STORAGE_STATE": "C:\\full\\path\\to\\planview-mcp\\planview-auth.json",
"OKTA_USERNAME": "your.email@company.com"
}
},
"playwright": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@playwright/mcp@latest"]
}
}
}Why Clone Instead of Direct Install?
This MCP requires cloning because:
Authentication creates
planview-auth.jsonlocallyBoth MCP servers need access to the same auth file
Each company has different Planview URLs
Configuration is set in
.mcp.json(committed to repo)
Direct GitHub URL installation won't work due to these local file requirements.
Development
npm run dev # Watch mode (auto-rebuild)
npm run build # Build once
npm start # Run server manuallyAPI Documentation
View Planview API docs at: https://yourcompany.pvcloud.com/planview/swagger/index.html
Security
Never commit these files (already in .gitignore):
.mcp.json- Your configuration with credentialsplanview-auth.json- Your session
License
MIT
Available Tools
7 toolsplanview_execute_requestB
Execute a custom API request to Planview. Useful for advanced operations not covered by other tools.
Inputs: method (required), endpoint (required), data.
planview_get_current_userA
Get information about the currently authenticated user
Inputs: no named parameters.
planview_get_projectA
Get details of a specific project by ID
Inputs: id (required).
planview_get_projectsC
Get a list of projects from Planview with optional filters
Inputs: filters.
planview_get_work_itemA
Get details of a specific work item by ID
Inputs: id (required).
planview_get_work_itemsA
Get a list of work items from Planview with optional filters
Inputs: filters.
planview_update_work_itemC
Update a work item with new data
Inputs: id (required), data (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Each tool targets a distinct resource or action: work items, projects, current user, and a catch-all custom request tool that is explicitly positioned for operations not otherwise covered. There is no meaningful overlap between the specific get/update tools.
All tools follow a consistent planview_ prefix and use clear verb_noun naming: get_work_items, get_work_item, update_work_item, get_projects, get_project, execute_request, get_current_user. The pattern is predictable and easy to navigate.
Seven tools is a well-scoped size for a project management server. Each tool serves a clear purpose, and the set is neither bloated nor too thin.
The server covers listing, reading, and updating work items, plus reading projects, but lacks direct create/delete operations for common resources. The custom execute_request tool can fill some gaps, but the dedicated surface is incomplete for full lifecycle management.
Maintenance
Related MCP Connectors
AI-native project and portfolio management platform for PMOs. OAuth + PAT.
Read workspaces, tasks and time entries, create and update tasks, and log time in Kantata.
Discover, plan and run tools across your connected business systems through one OAuth MCP endpoint
Read Hub Planner resources, projects, bookings and timesheets; create clients and time entries.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables automated timesheet management including creating entries, listing work activities, managing daily scrum updates, and viewing assigned projects with automatic authentication handling.8 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables employee information lookup, directory listing, payroll access, and time-off request management with Okta token validation.-
- FlicenseNot gradedqualityDmaintenanceEnables interacting with Microsoft Planner and Project for the Web plans through a secure MCP server, supporting plan listing, WBS details, overdue tasks, and workload summaries with strict group isolation.-
- FlicenseNot gradedqualityDmaintenanceEnables generating a workday schedule and 8-hour timesheet from selected Jira, Outlook, and Teams context via a read-only MCP tool.-