Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Tools

Functions exposed to the LLM to take actions

NameDescription
spec-workflow-guide

Load essential spec workflow instructions to guide feature development from idea to implementation.

Instructions

Call this tool FIRST when users request spec creation, feature development, or mention specifications. This provides the complete workflow sequence (Requirements → Design → Tasks → Implementation) that must be followed. Always load before any other spec tools to ensure proper workflow understanding. Its important that you follow this workflow exactly to avoid errors.

steering-guide

Load guide for creating project steering documents.

Instructions

Call ONLY when user explicitly requests steering document creation or asks about project architecture docs. Not part of standard spec workflow. Provides templates and guidance for product.md, tech.md, and structure.md creation. Its important that you follow this workflow exactly to avoid errors.

spec-status

Display comprehensive specification progress overview.

Instructions

Call when resuming work on a spec or checking overall completion status. Shows which phases are complete and task implementation progress. After viewing status, read tasks.md directly to see all tasks and their status markers ([ ] pending, [-] in-progress, [x] completed).

approvals

Manage approval requests through the dashboard interface.

Instructions

Use this tool to request, check status, or delete approval requests. The action parameter determines the operation:

  • 'request': Create a new approval request after creating each document

  • 'status': Check the current status of an approval request

  • 'delete': Clean up completed, rejected, or needs-revision approval requests (cannot delete pending requests)

CRITICAL: Only provide filePath parameter for requests - the dashboard reads files directly. Never include document content. Wait for user to review and approve before continuing.

log-implementation

Record comprehensive implementation details for a completed task.

⚠️ CRITICAL: Artifacts are REQUIRED. This creates a searchable knowledge base that future AI agents use to discover existing code and avoid duplication.

WHY DETAILED LOGGING MATTERS

Future AI agents (and future you) will use grep/ripgrep to search implementation logs before implementing new tasks. Complete logs prevent:

  • ❌ Creating duplicate API endpoints

  • ❌ Reimplementing existing components

  • ❌ Duplicating utility functions and business logic

  • ❌ Breaking established integration patterns

Incomplete logs = Duplicated code = Technical debt

REQUIRED FIELDS

artifacts (REQUIRED - Object)

Contains structured data about what was implemented. Must include relevant artifact types:

apiEndpoints (array of API endpoint objects)

When new API endpoints are created/modified, document:

  • method: HTTP method (GET, POST, PUT, DELETE, PATCH)

  • path: Route path (e.g., "/api/specs/:name/logs")

  • purpose: What this endpoint does

  • requestFormat: Request body/query params format (JSON schema or example)

  • responseFormat: Response structure (JSON schema or example)

  • location: File path and line number (e.g., "src/server.ts:245")

Example:

{ "method": "GET", "path": "/api/specs/:name/implementation-log", "purpose": "Retrieve implementation logs with optional filtering", "requestFormat": "Query params: taskId (string, optional), search (string, optional)", "responseFormat": "{ entries: ImplementationLogEntry[] }", "location": "src/dashboard/server.ts:245" }

components (array of component objects)

When reusable UI components are created, document:

  • name: Component name

  • type: Framework type (React, Vue, Svelte, etc.)

  • purpose: What the component does

  • location: File path

  • props: Props interface or type signature

  • exports: What it exports (array of export names)

Example:

{ "name": "LogsPage", "type": "React", "purpose": "Main dashboard page for viewing implementation logs with search and filtering", "location": "src/modules/pages/LogsPage.tsx", "props": "{ specs: any[], selectedSpec: string, onSelect: (value: string) => void }", "exports": ["LogsPage (default)"] }

functions (array of function objects)

When utility functions are created, document:

  • name: Function name

  • purpose: What it does

  • location: File path and line

  • signature: Function signature (params and return type)

  • isExported: Whether it can be imported

Example:

{ "name": "searchLogs", "purpose": "Search implementation logs by keyword", "location": "src/dashboard/implementation-log-manager.ts:156", "signature": "(searchTerm: string) => Promise<ImplementationLogEntry[]>", "isExported": true }

classes (array of class objects)

When classes are created, document:

  • name: Class name

  • purpose: What the class does

  • location: File path

  • methods: List of public methods

  • isExported: Whether it can be imported

Example:

{ "name": "ImplementationLogManager", "purpose": "Manages CRUD operations for implementation logs", "location": "src/dashboard/implementation-log-manager.ts", "methods": ["loadLog", "addLogEntry", "getAllLogs", "searchLogs", "getTaskStats"], "isExported": true }

integrations (array of integration objects)

Document how frontend connects to backend:

  • description: How components connect to APIs

  • frontendComponent: Which component initiates the connection

  • backendEndpoint: Which API endpoint is called

  • dataFlow: Describe the data flow (e.g., "User clicks → API call → State update → Re-render")

Example:

{ "description": "LogsPage fetches logs via REST API and subscribes to WebSocket for real-time updates", "frontendComponent": "LogsPage", "backendEndpoint": "GET /api/specs/:name/implementation-log", "dataFlow": "Component mount → API fetch → Display logs → WebSocket subscription → Real-time updates on new entries" }

GOOD EXAMPLE (Include ALL relevant artifacts)

Task: "Implemented logs dashboard with real-time updates"

{ "taskId": "2.3", "summary": "Implemented real-time implementation logs dashboard with filtering, search, and WebSocket updates", "artifacts": { "apiEndpoints": [ { "method": "GET", "path": "/api/specs/:name/implementation-log", "purpose": "Retrieve implementation logs with optional filtering", "requestFormat": "Query params: taskId (string, optional), search (string, optional)", "responseFormat": "{ entries: ImplementationLogEntry[] }", "location": "src/dashboard/server.ts:245" } ], "components": [ { "name": "LogsPage", "type": "React", "purpose": "Main dashboard page for viewing implementation logs with search and filtering", "location": "src/modules/pages/LogsPage.tsx", "props": "None (uses React Router params)", "exports": ["LogsPage (default)"] } ], "classes": [ { "name": "ImplementationLogManager", "purpose": "Manages CRUD operations for implementation logs", "location": "src/dashboard/implementation-log-manager.ts", "methods": ["loadLog", "addLogEntry", "getAllLogs", "searchLogs", "getTaskStats"], "isExported": true } ], "integrations": [ { "description": "LogsPage fetches logs via REST API and subscribes to WebSocket for real-time updates", "frontendComponent": "LogsPage", "backendEndpoint": "GET /api/specs/:name/implementation-log", "dataFlow": "Component mount → API fetch → Display logs → WebSocket subscription → Real-time updates on new entries" } ] }, "filesModified": ["src/dashboard/server.ts"], "filesCreated": ["src/modules/pages/LogsPage.tsx"], "statistics": { "linesAdded": 650, "linesRemoved": 15, "filesChanged": 2 } }

BAD EXAMPLE (Don't do this)

❌ Empty artifacts - Future agents learn nothing:

{ "taskId": "2.3", "summary": "Added endpoint and page", "artifacts": {}, "filesModified": ["server.ts"], "filesCreated": ["LogsPage.tsx"] }

❌ Vague summary with no structured data:

{ "taskId": "2.3", "summary": "Implemented features", "artifacts": {}, "filesModified": ["server.ts", "app.tsx"] }

Instructions

  1. After completing a task, review what you implemented

  2. Identify all artifacts (APIs, components, functions, classes, integrations)

  3. Document each with full details and locations

  4. Include ALL the information - be thorough!

  5. Future agents depend on this data quality

Prompts

Interactive templates invoked by user choice

NameDescription
create-specGuide for creating spec documents directly in the file system. Shows how to use templates and create requirements, design, or tasks documents at the correct paths.
create-steering-docGuide for creating project steering documents (product, tech, structure) directly in the file system. These provide high-level project guidance.
implement-taskGuide for implementing a specific task from the tasks.md document. Provides comprehensive instructions for task execution, including reading _Prompt fields, marking progress, completion criteria, and logging implementation details for the dashboard.
spec-statusGet comprehensive status overview of specification documents, tasks, and approval workflows. Useful for project tracking and progress reporting.
inject-spec-workflow-guideInjects the complete spec-driven development workflow guide into the conversation context. This provides immediate access to all workflow phases, tools, and best practices without requiring separate tool calls.
inject-steering-guideInjects the complete steering document workflow guide into the conversation context. This provides instructions for creating project-level guidance documents (product.md, tech.md, structure.md) when explicitly requested by the user.
refresh-tasksComprehensive guide for updating tasks.md when requirements or design change during implementation. Preserves completed work while aligning pending tasks with current spec.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pimzino/spec-workflow-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server