Skip to main content
Glama
alga-psa-mcp

alga-psa-mcp

Official
by WYRE-AI

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NODE_ENVNoSet to development for the insecure local-dev bypass.
AUTH_MODENoHTTP authentication mode: gateway (default for HTTP) or env. Stdio always uses environment credentials.gateway
LOG_LEVELNoLog level: debug, info, warn, or error. Default info.info
ALGA_API_KEYNoAPI key for the Alga user this connection acts as. Required in standalone mode.
MCP_HTTP_HOSTNoBind host. Default 0.0.0.0 with S2S; insecure dev forces 127.0.0.1.0.0.0.0
MCP_HTTP_PORTNoHTTP listener port. Default 8080.8080
MCP_TRANSPORTNoTransport when using the HTTP entry point. Defaults to stdio; Docker defaults to http.stdio
ALGA_TENANT_IDNoOptional tenant ID. Leave blank unless Alga support asks for it.
ALGA_TOOL_TIERSNoComma-separated tool tiers the container serves. Only read is valid. Default read.read
ALGA_INSTANCE_URLNoThe https:// address you use to sign in to Alga, for example https://psa.example.com. A trailing / or /api/v1 is fine; leave off any other path. Required in standalone mode.
MCP_ALLOWED_HOSTSNoOptional comma-separated Host header allowlist for /mcp (with or without port).
CONDUIT_S2S_SECRETNoRequired for HTTP; at least 32 characters. Used to validate the gateway S2S proof.
MCP_ALLOW_INSECURE_DEVNoExactly 1 permits HTTP without S2S only on loopback, and only with NODE_ENV=development. Default off.off
ALGA_ALLOW_PRIVATE_INSTANCENoExactly true allows private/loopback destinations and HTTP for stdio and AUTH_MODE=env sandboxes only. Default off.off

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}
logging
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
alga_tickets_listB

List tickets, one page at a time. Use to browse or filter by client, board, status, priority, assignee, open or closed, dates or external link.

alga_tickets_getA

Get one ticket by ID. Use after a list or search to see full details.

alga_tickets_searchA

Search tickets by text and return up to limit matches (not paginated). Closed tickets are left out unless include_closed is true. Narrow with comma-separated client, status, priority or assignee IDs.

alga_tickets_comments_listA

List comments on a ticket. Internal notes are included for internal users; each comment's is_internal flag says which. Use limit (up to 200) and offset to read long threads in parts.

alga_tickets_time_entries_listB

Get the time logged on a ticket (not paginated). Users who can read every time sheet see all entries; others see their own entries plus a total for everyone else's.

alga_tickets_assets_listB

List all assets linked to a ticket (not paginated).

alga_tickets_get_by_external_linkA

Get the ticket linked to a record in another system, using that system's name and the record's ID there.

alga_clients_listA

List clients, one page at a time. Use to browse or filter by name search, type or inactive state.

alga_clients_getA

Get one client by ID. Use after a list or search to see full details.

alga_clients_locations_listA

List all locations belonging to a client (not paginated).

alga_clients_contacts_listA

List contacts belonging to one client, one page at a time. Use alga_contacts_list to browse across clients or alga_contacts_search to find a person by name or email.

alga_contacts_listA

List contacts, one page at a time. Use to browse or filter by client or inactive state; use alga_contacts_search to find a person by name or email.

alga_contacts_getA

Get one contact by ID. Use after a list or search to see full details.

alga_contacts_searchA

Search contacts by name, email or other columns and return up to limit matches (not paginated). Optionally limit to one client or include inactive contacts.

alga_time_entries_listA

List time entries, one page at a time. Use to browse or filter by user, work item, dates or billable state.

alga_time_entries_getA

Get one time entry by ID. Use after a list or search to see full details.

alga_time_sheets_listA

List time sheets, one page at a time. Use to browse or filter by user, period or approval state.

alga_projects_task_status_mappings_listA

List the task statuses a project uses, in the order Alga shows them, with the ID Alga uses for each (project_status_mapping_id). Pass phase_id to get the statuses for one phase; if that phase has no statuses of its own, you get the project's.

alga_projects_listA

List projects, one page at a time. Use to browse or filter by client, status or search.

alga_projects_getA

Get one project by ID. Use after a list or search to see full details.

alga_projects_phases_listB

List all phases in a project. This list is not paginated.

alga_projects_tasks_listA

List all tasks in a project. Pass phase_id to list only one phase; get phase IDs from alga_projects_phases_list. These lists are not paginated.

alga_projects_tasks_getA

Get one project task by ID. Use after a list or search to see full details.

alga_assets_listA

List assets, one page at a time. Use to browse or filter by client, type, status or location; use alga_assets_search to find assets by text.

alga_assets_getA

Get one asset by ID. Use after a list or search to see full details.

alga_assets_searchA

Search assets by text and return up to limit matches (not paginated). To filter by client, type or status, use alga_assets_list instead.

alga_invoices_listA

List invoices, one page at a time. Filter by client, status, invoice date range or due date range (YYYY-MM-DD, inclusive).

alga_invoices_getA

Get one invoice by ID. Use after a list or search to see full details.

alga_invoices_items_listA

List all line items on an invoice (not paginated).

alga_users_listB

List users, one page at a time. Use to browse or filter by search or inactive state.

alga_users_getA

Get one user profile by ID. Use after a list or search to see full details.

alga_teams_listA

List teams of users, one page at a time. Use to browse or filter by team name, manager or whether a team has a manager.

alga_boards_listA

List ticket boards, optionally filtered by name search, one page at a time. Inactive boards are left out unless include_inactive is true.

alga_statuses_listA

List statuses, one page at a time. Filter by type (ticket, project, project_task or interaction) or name search. Ticket statuses belong to a board, so type=ticket also needs board_id.

alga_priorities_listA

List priorities, one page at a time. Use to browse or filter by priority name search or by what they apply to (item_type).

alga_ticket_categories_listA

List ticket categories, one page at a time. Use to browse or filter by board, parent category or name search.

alga_services_listA

List services, one page at a time. Use to browse or filter by name search or category.

alga_contracts_listA

List client contracts, one page at a time (each has owner_client_id and owner_client_name); templates are not included. Filter by contract name, active state or whether a contract has plans. There is no per-client filter here.

alga_searchA

Search across record types at once. Use when you don't know the record type; pass the returned nextCursor as cursor to get more results.

alga_schedules_listB

List schedule entries, one page at a time. Filter by user or date range.

alga_kb_articles_listB

List knowledge articles, one page at a time. Use to browse or filter by search, category, type, audience or status.

alga_kb_articles_getA

Get one knowledge article by ID. Use after a list or search to see full details.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 42 tools

Disambiguation4/5

Most tools target clearly distinct resource/action pairs, and descriptions explicitly distinguish list vs search vs get and entity-scoped vs global listings. Minor overlap remains between alga_search and the per-entity search tools, and between nested list tools such as alga_clients_contacts_list and alga_contacts_list, but the descriptions make the intended use reasonably clear.

Naming Consistency5/5

Tool names consistently use the alga_ prefix followed by snake_case resource and action names, including nested resources like alga_tickets_comments_list and alga_projects_tasks_get. The pattern is predictable throughout the set despite some longer names.

Tool Count2/5

The server exposes 42 tools, which is well above the range where a tool set remains easy to navigate. While the PSA domain is broad, the surface is heavy and likely to overwhelm agents with many similar list/get/search variants.

Completeness2/5

The set provides extensive read coverage across tickets, clients, contacts, projects, invoices, assets, users, and reference data, but it appears to be read-only. There are no create, update, delete, or mutation tools for core PSA workflows such as creating tickets, adding comments, logging time, or updating invoice/client records, which are significant gaps for a PSA server.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues