Skip to main content
Glama

Server Details

Backoffice for agents. Ready-made jobs for your AI agents. No servers to set up or maintain.

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
xevol/xevol-mcp
GitHub Stars
0

TDQS

A4.4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_* retrieves one entity by id, list_* pages/filters a collection, and search finds across entity kinds when the id or kind is unknown. The descriptions explicitly explain when to use search versus list versus get, leaving little room for misselection.

Naming Consistency4/5

Six tools follow a clean verb_noun pattern (get_company, list_contacts, etc.), and the resource names are consistent across get/list pairs. The single generic 'search' is a minor but sensible deviation because it intentionally spans multiple resource types.

Tool Count5/5

Seven tools is well-scoped for a read-oriented CRM surface, with one get and one list per core entity plus a cross-entity search. Every tool earns its place and there is no redundant or filler tool.

Completeness3/5

The read surface is complete for companies, contacts, deals, and cross-entity search, with useful filtering and paging. However, the set has no create, update, delete, or deal-stage mutation operations, so it is notably incomplete as a full CRM lifecycle unless the server is intentionally read-only.

Available Tools

7 tools
get_companyGet CompanyA
Read-only
Inspect

Read one Company in full, given its id: website, description, industry, location, social links, research state, owner, primary Contact, and its Contacts and Deals. Use search or list_companies first to get the id. An unknown id, or a private Company you cannot see, returns NOT_FOUND.

NameRequiredDescriptionDefault
idYesThe Company's id, from search or list_companies.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is known. The description adds real value beyond them by disclosing the NOT_FOUND failure mode and the access-control nuance that a private Company the caller cannot see is indistinguishable from a missing one. It stops short of noting any pagination or field-truncation behavior, but for a single-record read that gap is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the first front-loads what is returned, the second states the prerequisite. Every clause carries information and nothing is repeated from the schema beyond the necessary 'given its id' framing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with no output schema, the description covers the three things an agent needs: what comes back (field list), how to get the required input (search/list_companies), and what failure looks like (NOT_FOUND). No material gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage the parameter's meaning is already fully documented, and the schema itself says the id comes from search or list_companies. The description restates that provenance ('given its id') without adding format, length, or validation detail, so it neither helps nor hurts beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one Company in full, given its id') and immediately enumerates the fields returned, so the agent knows exactly what this retrieves. This clearly separates it from list_companies and search, which return collections rather than one full record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent to call search or list_companies first to obtain the id, naming the sibling tools to use for discovery. The only preconditions the tool has are covered, leaving no ambiguity about how to obtain the required input.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contactGet ContactA
Read-only
Inspect

Read one Contact in full, given its id: phone, social links, research brief and facts with their sources, Company, owner and Deals. Use search or list_contacts first to get the id. An unknown id, or a private Contact you cannot see, returns NOT_FOUND.

NameRequiredDescriptionDefault
idYesThe Contact's id, from search or list_contacts.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the bar is lower; the description still adds real value by disclosing the NOT_FOUND behavior for unknown ids and for private Contacts the caller cannot see. No mention of rate limits or response envelope, but no output schema exists to lean on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, then prerequisite, then failure mode. Every sentence carries actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, listing the returned fields (including facts with sources and Deals) is essential and present. The id-sourcing prerequisite and the NOT_FOUND edge case round out what an agent needs to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With a single required parameter at 100% schema description coverage, the schema already fully documents 'id'. The description reinforces the provenance of the value ('from search or list_contacts') but adds no format, type, or constraint details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the exact verb and resource ('Read one Contact in full, given its id') and enumerates the payload: phone, social links, research brief, facts with sources, Company, owner, Deals. This clearly separates it from the list_contacts/search siblings, which return many records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use search or list_contacts first to get the id' gives an explicit prerequisite and names the two alternatives for acquiring the identifier. It stops short of contrasting get_contact with get_company/get_deal, but the resource distinction is self-evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dealRead DealA
Read-only
Inspect

Read one Deal in full, given its id: stage, amountCents (whole cents) and currency, expected close date, closing details, Company, owner and its Contacts with their roles. Use search or list_deals first to get the id. An unknown id returns NOT_FOUND. Needs the Deals module: without it, PRECONDITION_FAILED.

NameRequiredDescriptionDefault
idYesThe Deal's id, from search or list_deals.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower. The description adds genuine behavioral context beyond them: the NOT_FOUND response for unknown ids and the Deals-module precondition that yields PRECONDITION_FAILED. It does not mention pagination or payload size, but for a single-record read that is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no wasted words: the first front-loads what is returned, the second front-loads the id-sourcing prerequisite. Error and precondition details are appended, not buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so naming the returned fields is essential and it is done thoroughly. Combined with the id-provenance guidance and the two error/precondition cases, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter already documents itself as 'The Deal's id, from search or list_deals.' The description restates the provenance of the id but adds no syntax, format, or validation detail beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read one Deal in full, given its id') and enumerates the returned fields (stage, amountCents, currency, close date, Company, owner, Contacts). It is clearly distinguishable from the list/search siblings, which are named as the id source rather than as alternatives for the same read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: 'Use search or list_deals first to get the id,' naming the alternatives and the precondition that selects them. It also states what happens on an unknown id (NOT_FOUND) and the module requirement (PRECONDITION_FAILED), so the agent knows failure modes before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_companiesList CompaniesA
Read-only
Inspect

List the Companies you can see in this Workspace, one page at a time. Use it to filter by owner, industry, research state or source, or to sort; use search to find one by name, and get_company for its details. Returns one row per Company, plus the total and counts per filter value.

NameRequiredDescriptionDefault
qNoMatches the name or domain. Empty returns every Company you can see.
dirNoSort direction.asc
pageNoPage number, from 1.
sortNoOne of name, domain, industry, createdAt, contacts, deals, owner or lastActivity. Empty or unknown sorts newest first.
ownerNoA user id, "unassigned" or "all".all
sourceNoHow the record got here: MANUAL, IMPORT, EMAIL, CALENDAR, RESEARCH or "all".all
industryNoThe exact industry name, or "all".all
pageSizeNoRows per page, up to 100.
enrichmentNoResearch state: PENDING, RUNNING, COMPLETE, FAILED, SKIPPED or "all".all

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and non-destructive, so safety is covered; the description adds workspace-scoping ('you can see'), one-page-at-a-time behavior, and the return shape (rows plus total and per-filter counts). It doesn't say how to detect the last page or how counts behave with filters combined, which keeps it off a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: what it does, when to use it vs siblings, and what comes back. The scope statement is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully discloses the return shape — one row per Company plus total and counts per filter value. Minor gaps remain around pagination termination and whether counts reflect active filters, but nothing blocks a correct call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enums and defaults documented, so the schema carries the parameter burden. The description only recaps the filter dimensions (owner, industry, research state, source) and sort, adding no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the Companies you can see in this Workspace, one page at a time') with scope and pagination baked in. It is immediately distinguishable from search and get_company, which are named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: use this to filter by owner/industry/research state/source or to sort, use search for name lookup, and get_company for details. Both alternatives and their selecting conditions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_contactsList ContactsA
Read-only
Inspect

List the Contacts you can see in this Workspace, one page at a time. Use it to filter by owner, Company or source, or to sort; use search to find one by name, and get_contact for one person's phone, background and Deals. Returns rows with name, email, title, Company and owner, plus the total and counts per filter value.

NameRequiredDescriptionDefault
qNoMatches the name, email or Company name. Empty returns every Contact you can see.
dirNoSort direction.asc
pageNoPage number, from 1.
sortNoOne of name, email, title, company, createdAt, owner or lastActivity. Empty or unknown sorts newest first.
ownerNoA user id, "unassigned" or "all".all
sourceNoHow the record got here: MANUAL, IMPORT, EMAIL, CALENDAR, RESEARCH or "all".all
companyNoA Company id from list_companies, "none" or "all".all
pageSizeNoRows per page, up to 100.
accessScopeNoSHARED leaves out Contacts private to one person. Omit it for everything you can see.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new behavioral context: paged results, visibility scoping ('you can see'), and the exact return payload including totals and per-filter counts. It stops short of describing pagination termination or how accessScope interacts with results, which the schema only partly covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each doing distinct work: what it lists, when to use it vs. siblings, and what comes back. The primary purpose is front-loaded in the first clause with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 9 optional parameters, no output schema and safety already covered by annotations, the description fills the key gaps by describing the returned row shape and the aggregate totals. Minor gaps remain around pagination behavior (what signals the last page) and the accessScope omission semantics, though the latter is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description goes slightly beyond it by grouping the filter dimensions (owner, Company, source) and by noting that the response includes counts per filter value, which hints at how the filters are meant to be used for faceting. It adds no syntax or edge-case detail the schema lacks, so it sits just above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the Contacts'), scopes it ('you can see in this Workspace'), and characterizes the mode ('one page at a time'). It is clearly distinguishable from get_contact and search, which are named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names the two competing siblings with the exact condition that selects each: 'use search to find one by name, and get_contact for one person's phone, background and Deals.' It also states the intended use of this tool (filter by owner, Company or source, or sort), so the routing decision is explicit rather than inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dealsList DealsA
Read-only
Inspect

List the Deals you can see in this Workspace, one page at a time. Use it to filter by open or closed, stage, owner or expected close date, or to sort; use search to find one by name, and get_deal for its Contacts. Returns rows with stage, amount and Company, plus the total. Needs the Deals module: without it, PRECONDITION_FAILED.

NameRequiredDescriptionDefault
qNoMatches the Deal's or its Company's name. Empty returns every Deal you can see.
dirNoSort direction.asc
pageNoPage number, from 1.
sortNoOne of name, company, stage, amount, expectedCloseDate, createdAt, owner or lastActivity. Empty or unknown sorts newest first.
ownerNoA user id or "all".all
stageNoDEMO_BOOKED, QUALIFIED_TO_BUY, UNQUALIFIED_TO_BUY, DECISION_MAKER_BOUGHT_IN, CONTRACT_SENT, CLOSED_WON, CLOSED_LOST or "all".all
statusNo"open", "closed" or "all". A stage filter overrides it.all
closingNoExpected close date: overdue, this-month, next-month, later, none or "all".all
pageSizeNoRows per page, up to 100.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds real context beyond them: pagination semantics ("one page at a time"), the returned row shape with a total, and a concrete failure mode (PRECONDITION_FAILED when the Deals module is absent). It does not mention permission scoping or rate limits, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: capability first, routing second, return shape and precondition last. Every clause carries information and nothing is repeated from the schema verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nine-parameter read-only list tool with full schema coverage and no output schema, the description supplies what the schema cannot: the paginated contract, the returned fields, and the module prerequisite error. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the nine parameters (q, dir, page, sort, owner, stage, status, closing, pageSize) is already documented in the schema, including the enum values and defaults. The description only restates the filter categories at a high level and adds no syntax or interaction detail (e.g. that a stage filter overrides status). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("List the Deals you can see in this Workspace") plus a scope qualifier (workspace-visible, paginated). It explicitly distinguishes itself from the search sibling and from get_deal, so an agent can identify it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Names concrete use cases (filter by open/closed, stage, owner, expected close date, or sort) and routes to alternatives with conditions: "use search to find one by name, and get_deal for its Contacts." Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updates
    • Changedget_company1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The Company's id, from search or list_companies."
    • Changedget_contact1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The Contact's id, from search or list_contacts."
    • Changedget_deal1 field changed
      • addedInput schema / properties / id / description
        Added value: +"The Deal's id, from search or list_deals."
    • Changedlist_companies9 fields changed
      • addedInput schema / properties / dir / description
        Added value: +"Sort direction."
      • addedInput schema / properties / enrichment / description
        Added value: +"Research state: PENDING, RUNNING, COMPLETE, FAILED, SKIPPED or \"all\"."
      • addedInput schema / properties / industry / description
        Added value: +"The exact industry name, or \"all\"."
      • addedInput schema / properties / owner / description
        Added value: +"A user id, \"unassigned\" or \"all\"."
      • addedInput schema / properties / page / description
        Added value: +"Page number, from 1."
      • addedInput schema / properties / pageSize / description
        Added value: +"Rows per page, up to 100."
      • addedInput schema / properties / q / description
        Added value: +"Matches the name or domain. Empty returns every Company you can see."
      • addedInput schema / properties / sort / description
        Added value: +"One of name, domain, industry, createdAt, contacts, deals, owner or lastActivity. Empty or unknown sorts newest first."
      • addedInput schema / properties / source / description
        Added value: +"How the record got here: MANUAL, IMPORT, EMAIL, CALENDAR, RESEARCH or \"all\"."
    • Changedlist_contacts9 fields changed
      • addedInput schema / properties / accessScope / description
        Added value: +"SHARED leaves out Contacts private to one person. Omit it for everything you can see."
      • addedInput schema / properties / company / description
        Added value: +"A Company id from list_companies, \"none\" or \"all\"."
      • addedInput schema / properties / dir / description
        Added value: +"Sort direction."
      • addedInput schema / properties / owner / description
        Added value: +"A user id, \"unassigned\" or \"all\"."
      • addedInput schema / properties / page / description
        Added value: +"Page number, from 1."
      • addedInput schema / properties / pageSize / description
        Added value: +"Rows per page, up to 100."
      • addedInput schema / properties / q / description
        Added value: +"Matches the name, email or Company name. Empty returns every Contact you can see."
      • addedInput schema / properties / sort / description
        Added value: +"One of name, email, title, company, createdAt, owner or lastActivity. Empty or unknown sorts newest first."
      • addedInput schema / properties / source / description
        Added value: +"How the record got here: MANUAL, IMPORT, EMAIL, CALENDAR, RESEARCH or \"all\"."
    • Changedlist_deals9 fields changed
      • addedInput schema / properties / closing / description
        Added value: +"Expected close date: overdue, this-month, next-month, later, none or \"all\"."
      • addedInput schema / properties / dir / description
        Added value: +"Sort direction."
      • addedInput schema / properties / owner / description
        Added value: +"A user id or \"all\"."
      • addedInput schema / properties / page / description
        Added value: +"Page number, from 1."
      • addedInput schema / properties / pageSize / description
        Added value: +"Rows per page, up to 100."
      • addedInput schema / properties / q / description
        Added value: +"Matches the Deal's or its Company's name. Empty returns every Deal you can see."
      • addedInput schema / properties / sort / description
        Added value: +"One of name, company, stage, amount, expectedCloseDate, createdAt, owner or lastActivity. Empty or unknown sorts newest first."
      • addedInput schema / properties / stage / description
        Added value: +"DEMO_BOOKED, QUALIFIED_TO_BUY, UNQUALIFIED_TO_BUY, DECISION_MAKER_BOUGHT_IN, CONTRACT_SENT, CLOSED_WON, CLOSED_LOST or \"all\"."
      • addedInput schema / properties / status / description
        Added value: +"\"open\", \"closed\" or \"all\". A stage filter overrides it."
    • Changedsearch1 field changed
      • addedInput schema / properties / q / description
        Added value: +"At least 2 characters; shorter text returns no hits."
  2. 7 tool updates
    • First observedget_company
    • First observedget_contact
    • First observedget_deal
    • First observedlist_companies
    • First observedlist_contacts
    • First observedlist_deals
    • First observedsearch

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Last-mile human work for AI agents. Phone calls, physical-world tasks, captcha on an already-authorized account, subjective QA, and long manual work, done by real virtual assistants.
    13
    160 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables agents to find and apply to jobs, and employers to post jobs, through a self-hosted job board with human oversight.
    325 npm
    4
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to create and run a backend with database, auth, file storage, server-side functions, and a site, all without opening a browser.
    16 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.