Base URL: https://pipe-production.up.railway.app
Register a new user account.
Request Body:
{
"email": "user@example.com",
"password": "securepassword",
"name": "John Doe"
}Response:
{
"user": {
"id": "uuid",
"email": "user@example.com",
"name": "John Doe"
},
"accessToken": "jwt-token",
"refreshToken": "refresh-token"
}Authenticate and receive tokens.
Request Body:
{
"email": "user@example.com",
"password": "securepassword"
}Refresh access token using refresh token.
Request Body:
{
"refreshToken": "refresh-token"
}Initiate OAuth flow for a platform.
Parameters:
platform:github|slack|jira|linear|notion
Response:
{
"authUrl": "https://platform.com/oauth/authorize?..."
}OAuth callback endpoint (handled by platform).
Disconnect a platform integration.
List active platform connections.
Response:
{
"connections": [
{
"platform": "github",
"createdAt": "2024-01-01T00:00:00Z",
"lastSyncAt": "2024-01-01T01:00:00Z",
"metadata": {}
}
]
}Trigger manual sync for a platform.
Request Body:
{
"full": false
}All webhook endpoints follow the pattern:
- POST /api/webhooks/:platform
Supported platforms:
/api/webhooks/github/api/webhooks/slack/api/webhooks/jira/api/webhooks/linear/api/webhooks/notion
Get webhook processing status.
Response:
{
"recent": [...],
"stats": [
{
"platform": "github",
"status": "processed",
"count": 42
}
]
}Basic health check.
Detailed health status of all services.
Response:
{
"status": "healthy",
"timestamp": "2024-01-01T00:00:00Z",
"services": {
"database": "healthy",
"redis": "healthy",
"neo4j": "healthy"
}
}The MCP server exposes the following tools via the Model Context Protocol:
Search across all connected platforms.
Input Schema:
{
"query": "string",
"platforms": ["github", "slack"],
"types": ["issue", "message"],
"limit": 20,
"since": "2024-01-01T00:00:00Z"
}Response:
{
"results": [
{
"id": "github:issue:123",
"type": "issue",
"title": "Bug: Login fails",
"platform": "github",
"url": "https://github.com/...",
"snippet": "...",
"score": 0.95
}
],
"total": 42
}Retrieve aggregated team collaboration context.
Input Schema:
{
"teamId": "team-uuid",
"timeRange": {
"start": "2024-01-01T00:00:00Z",
"end": "2024-01-31T23:59:59Z"
}
}Response:
{
"summary": {
"totalItems": 150,
"platforms": {
"github": 100,
"slack": 50
},
"types": {
"issue": 40,
"pull_request": 60,
"message": 50
}
},
"topContributors": [...],
"recentActivity": [...]
}AI-powered context synthesis (placeholder for Phase 3).
Input Schema:
{
"nodeIds": ["node1", "node2"],
"prompt": "Summarize the discussion about authentication"
}Trigger platform synchronization.
Input Schema:
{
"platform": "github",
"full": false
}List available platform integrations.
Response:
{
"platforms": [
{
"name": "github",
"connected": true,
"lastSync": "2024-01-01T00:00:00Z"
},
{
"name": "slack",
"connected": false
}
]
}Check synchronization job status.
Input Schema:
{
"jobId": "job-uuid"
}Manually create a context node.
Input Schema:
{
"type": "note",
"title": "Architecture Decision",
"content": "We decided to use Neo4j for...",
"metadata": {
"tags": ["architecture", "database"]
}
}Connect to WebSocket endpoint: wss://pipe-production.up.railway.app/ws
{
"type": "authenticate",
"token": "jwt-token"
}{
"type": "subscribe",
"channels": ["team:123", "platform:github"]
}{
"type": "connected",
"sessionId": "session-uuid"
}{
"type": "context_update",
"platform": "github",
"action": "created",
"data": {...}
}{
"type": "sync_progress",
"platform": "github",
"progress": 0.75,
"status": "syncing"
}All endpoints use consistent error formatting:
{
"error": "Error message",
"code": "ERROR_CODE",
"details": {}
}Common HTTP status codes:
400- Bad Request401- Unauthorized403- Forbidden404- Not Found429- Rate Limited500- Internal Server Error