orchestry-mcp
Version:
Orchestry MCP Server for multi-session task management
72 lines (61 loc) • 2.02 kB
text/typescript
import axios from 'axios';
import type {
BMADProject,
Business,
Mission,
Approach,
Deployment,
TaskStatus,
} from '../../../shared/types.js';
const API_BASE_URL = import.meta.env.VITE_API_URL || 'http://localhost:7531/api';
const api = axios.create({
baseURL: API_BASE_URL,
headers: {
'Content-Type': 'application/json',
},
});
export const bmadAPI = {
// Projects
getProject: async (id: string) => {
const { data } = await api.get<BMADProject>(`/projects/${id}`);
return data;
},
createProject: async (name: string, description: string) => {
const { data } = await api.post<BMADProject>('/projects', { name, description });
return data;
},
// Business
createBusiness: async (projectId: string, business: Partial<Business>) => {
const { data } = await api.post<Business>('/business', { projectId, ...business });
return data;
},
// Missions
createMission: async (businessId: string, mission: Partial<Mission>) => {
const { data } = await api.post<Mission>('/missions', { businessId, ...mission });
return data;
},
// Approaches
createApproach: async (missionId: string, approach: Partial<Approach>) => {
const { data } = await api.post<Approach>('/approaches', { missionId, ...approach });
return data;
},
// Deployments
createDeployment: async (approachId: string, deployment: Partial<Deployment>) => {
const { data } = await api.post<Deployment>('/deployments', { approachId, ...deployment });
return data;
},
updateDeploymentStatus: async (id: string, status: TaskStatus) => {
const { data } = await api.put<Deployment>(`/deployments/${id}/status`, { status });
return data;
},
// Kanban Board
getBoard: async (projectId: string) => {
const { data } = await api.get(`/projects/${projectId}/board`);
return data;
},
// BMAD Hierarchy
getHierarchy: async (projectId: string) => {
const { data } = await api.get(`/projects/${projectId}/hierarchy`);
return data;
},
};