MCP
Neram MCP — local stdio and hosted Streamable HTTP, same tools.
Local stdio and hosted Streamable HTTP run the same Organization-scoped tools. Tool failures come back as isError results (not protocol exceptions) with stable error codes.
Local stdio
Authenticate first with neram login. neram mcp fails fast with a friendly stderr message when you aren’t logged in — it never auto-logs-in from startup.
npx neram login # sign in first
npx neram mcp # stdio server; refreshes the token per request
# print a client config without writing files (also: cursor, vscode)
npx neram mcp install claude-code
# Claude Code one-liner
claude mcp add neram -- npx neram mcp
{
"mcpServers": {
"neram": {
"command": "npx",
"args": ["neram", "mcp"]
}
}
}
Hosted Streamable HTTP
# hosted Streamable HTTP; send a Clerk id_token
curl -s https://neram.praveenjuge.com/mcp \
-H "Authorization: Bearer $NERAM_ID_TOKEN"
Send a Clerk OAuth id_token in Authorization: Bearer. The endpoint returns 401 without a bearer token; that is the expected unauthenticated smoke-test result. Public client config is at /.well-known/neram-agent.json.
Tools
# read-only
daily_brief
workspace_status
get_workspace
list_workspace_members
get_sprint
list_sprint_tasks
sprint_history
list_projects
list_tasks
get_task
list_subtasks
list_task_comments
summarize_project
recent_activity
# mutations
capture_task
update_task
move_task # optional position for kanban order
complete_task
move_task_to_project
delete_task
create_subtask
rename_subtask
set_subtask_completed
reorder_subtask
delete_subtask
create_comment
reply_to_comment
edit_comment
delete_comment
create_project
update_project
delete_project # destructive — purges every task
create_workspace
invite_workspace_member
update_workspace_member_role
remove_workspace_member # destructive — exact Organization confirmation
delete_workspace # destructive — exact Organization confirmation
plan_sprint_tasks
remove_sprint_tasks
update_sprint_goal
update_sprint_duration
start_sprint
end_sprint # destructive — unfinished work returns to Backlog
# failures return isError results with:
# { error: { code, message, details } }
IDs vs names
Prefer project and task ids for automation; name/title resolution intentionally rejects ambiguous matches with AMBIGUOUS and candidate ids in details.matches.