JamJet
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JAMJET_BIND | No | Bind address | 0.0.0.0 |
| JAMJET_PORT | No | Port to listen on | 8080 |
| JAMJET_DEV_MODE | No | Skip auth for sandbox testing | true |
| STORAGE_BACKEND | No | Storage backend: memory (ephemeral) or sqlite | memory |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jamjet_list_agentsA | List all agents registered in the runtime, with optional filters by status, skill, or protocol. Read-only, no side effects. Use this to discover which agents are available before routing work, or to check the health/status of registered agents. Returns a JSON object with an 'agents' array. Each entry includes the agent's ID, name, description, skills, protocol, status, and Agent Card metadata. All filter parameters are optional and can be combined — omit all to list every registered agent. Returns an empty array if no agents match the filters. Related: use jamjet_discover_agent to register a new remote agent before listing. |
| jamjet_approveA | Submit an approval or rejection decision for a workflow execution that is paused and waiting for human review. Use this when jamjet_list_executions shows a 'paused' execution or jamjet_get_events shows an ApprovalRequested event. Side effects: appends an ApprovalReceived event to the event log (with user_id 'mcp-client') and, if the execution is paused, resumes it to 'running' status so the next node can proceed. The decision is recorded in the immutable audit trail. Returns a JSON object with execution_id and accepted: true. Fails if execution_id is not found or if decision is not exactly 'approved' or 'rejected'. Related: use jamjet_get_events to see the ApprovalRequested event details before deciding. |
| jamjet_get_eventsA | Retrieve the full, ordered event log for a workflow execution. Read-only, no side effects. Use this to debug execution behavior, understand which nodes ran and in what order, or inspect approval decisions. Returns a JSON object with an 'events' array. Each event has: execution_id, sequence (monotonic counter), timestamp, and kind (one of: WorkflowStarted, NodeScheduled, NodeStarted, NodeCompleted, NodeFailed, ApprovalRequested, ApprovalReceived, WorkflowCompleted, WorkflowCancelled, WorkflowFailed). Events are returned in sequence order (oldest first) and represent the complete, immutable audit trail. For a high-level status summary, use jamjet_get_execution instead. |
| jamjet_run_workflowA | Start a new durable workflow execution. Use this to kick off a workflow that has already been registered with the runtime. Side effects: creates a new execution record, appends WorkflowStarted and NodeScheduled events to the event log, and enqueues a work item for the first node — the workflow begins processing immediately. Returns a JSON object with the execution_id (format: exec_) that you can pass to jamjet_get_execution, jamjet_get_events, jamjet_cancel_execution, or jamjet_approve. This operation is not reversible — use jamjet_cancel_execution to stop a running workflow. Fails if the workflow_id + version combination is not registered. No authentication required (local-only server). |
| jamjet_list_executionsA | List workflow executions with optional status filtering and pagination. Read-only, no side effects. Use this to find executions that need attention — for example, filter by 'paused' to find executions awaiting approval via jamjet_approve, or filter by 'running' to monitor active workflows. Returns a JSON object with an 'executions' array, where each entry has the same fields as jamjet_get_execution. Results are ordered by creation time (newest first). Supports offset-based pagination via limit and offset parameters. All parameters are optional — calling with no arguments returns the 50 most recent executions across all statuses. |
| jamjet_get_executionA | Retrieve the full details of a single workflow execution. Read-only, no side effects. Use this to check an execution's current status, inspect its state, or confirm completion after running jamjet_run_workflow. Returns a JSON object with: execution_id, workflow_id, workflow_version, status (one of: running, paused, completed, failed, cancelled), initial_input, current_state, started_at, updated_at, and completed_at (null if still running). Fails with 'execution not found' if the ID does not exist in the specified tenant. For the full event history, use jamjet_get_events instead. |
| jamjet_discover_agentA | Discover and register a remote agent by fetching its Agent Card from the given URL. Side effects: makes an outbound HTTP request to the URL to retrieve the agent's metadata (Agent Card), then registers the agent in the local runtime registry so it becomes available for routing and invocation. Use this to onboard external agents (A2A, MCP, or REST) before they can appear in jamjet_list_agents or be routed to by a Coordinator. Returns the full JSON Agent Card of the newly registered agent, including its ID, name, skills, protocol, and endpoint. Fails if the URL is unreachable, does not serve a valid Agent Card, or if a network error occurs. This operation is idempotent — discovering the same URL again updates the existing registration. |
| jamjet_cancel_executionA | Cancel a running or paused workflow execution. This is an irreversible, destructive operation. Side effects: appends a WorkflowCancelled event to the execution's event log and sets the status to 'cancelled'. The execution cannot be resumed after cancellation — start a new execution with jamjet_run_workflow if needed. Use this when a workflow is stuck, no longer needed, or was started with incorrect input. Returns a JSON object with execution_id and status 'cancelled'. Fails if the execution is already in a terminal state (completed, failed, or cancelled) or if the execution_id is not found. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/jamjet-labs/jamjet'
If you have feedback or need assistance with the MCP directory API, please join our Discord server