Skip to main content
Glama

easyJOB Model Context Protocol (MCP) Server

A clean, stable, and highly configurable Model Context Protocol (MCP) server for the easyJOB REST API.

This server manages dynamic OAuth authentication token fetching and caching, simplifies complex multi-query workflows (such as looking up user and job IDs to record time), and provides full read/write access to easyJOB via generic endpoints.


Safety model

This server is normally pointed at a production easyJOB instance holding real agency data, so it is deliberately narrow in what it can change:

  • The only writes it performs are time recordings: booking hours and correcting your own entries. Nothing else is created, restructured or deleted.

  • update_time_record verifies ownership against EASYJOB_USERNAME and refuses to touch anyone else's timesheet. The API token itself can write other people's records, so this guard lives in the server rather than in the caller.

  • track_time_batch defaults to a dry run: it validates and returns a preview without writing. A batch is applied all-or-nothing, so it never lands half-done.

  • Identical entries on the same day for the same job are refused as duplicates unless allow_duplicate is set explicitly.

  • The generic create_or_update_entity and delete_entity tools can touch any record, so they are hidden and blocked unless you set EASYJOB_ENABLE_GENERIC_WRITES=1. Everything above works without them.

  • Query failures are detected properly: easyJOB signals them with HTTP 200, either as an error envelope or as an empty body (see API-NOTES.md), which previously could turn a typo into a silently empty report.


Related MCP server: OAuth MCP Server

Features

Automated token management — fetches and caches the OAuth bearer token, retries transient network failures, and refreshes automatically when the API rejects a token.

Analysis (read-only)

Tool

Purpose

search_jobs

Find jobs by number, name, short name or customer; shows whether each accepts bookings

get_job_details

Complete job context in one call: header, customer, positions and hours booked per position

list_job_activities

Positions (Leistungen) with budget, booked and remaining hours — how you pick a valid activity_id

job_budget_report

Budget vs. actual per position, remaining budget, burn rate, hours per contributor

list_time_records

The individual records booked in a date range

timesheet_report

Totals grouped by day, job, activity or customer, plus working days with no bookings

team_hours_report

Hours per employee, optionally against recorded attendance (Arbeitszeit)

list_absences

Who is absent in a range, with type and days

get_user_id

Internal user ID of the configured login

query_entities

Escape hatch for arbitrary FetchsonQuery reads

Time recording (write)

Tool

Purpose

track_time

Book hours on one job, with validation and duplicate protection

track_time_batch

Validate and preview several entries, then book them after confirmation

update_time_record

Correct one of your own records (hours, description, date, times, position)

Budgets are read from each position's EstimateQuantity. Quantities in hours (Std., h) are used directly, quantities in days (Tag(e), Tage, AT) are converted at EASYJOB_HOURS_PER_DAY (default 8). Units such as pauschal, Stck. or Monat(e) are not time budgets and are reported as budgetHours: null alongside their raw quantity.


easyjob-sync — booking Super Productivity time into easyJOB

Super Productivity (MIT, macOS/Windows/Linux) serves as the local tracker. Its Local REST API only listens on 127.0.0.1, so the bridge is a CLI that runs on your own machine — the containerised MCP server cannot reach it. Both share the same easyJOB client.

One-time setup

  1. In Super Productivity: Settings → Misc → "Enable local REST API".

  2. List what the tracker knows and map each project to an easyJOB job and position:

node --env-file=.env bin/easyjob-sync.js status
node --env-file=.env bin/easyjob-sync.js projects
node --env-file=.env bin/easyjob-sync.js map <spProjectId> --job UNI_2604_131 --activity 43966
node --env-file=.env bin/easyjob-sync.js map-tag <spTagId> --activity 43969   # tag overrides the position
node --env-file=.env bin/easyjob-sync.js map <spProjectId> --ignore           # never book this project

The mapping lives in ~/.config/easyjob-sync/config.json (override with EASYJOB_SYNC_CONFIG). Super Productivity has no field for foreign keys, which is why the mapping is kept here rather than in the tracker.

Daily use

node --env-file=.env bin/easyjob-sync.js preview --from 2026-07-01 --to 2026-07-31
node --env-file=.env bin/easyjob-sync.js push    --from 2026-07-01 --to 2026-07-31 --yes

preview never writes. push refuses to write without --yes, validates every target job and position first, and aborts before writing anything if one is invalid.

How the mapping works

  • Time comes from each task's timeSpentOnDay, the finest granularity the tracker stores. Entries are grouped per day + job + position, so one day on one position becomes exactly one easyJOB record, with the task titles as description.

  • Rounding happens once per group (default 15 minutes, roundToMinutes), never per task, so several small tasks cannot inflate a day. The preview shows both the rounded and the exact figure.

  • Task-days below minMinutes (default 5) are dropped as tracking noise and listed as skipped.

  • Re-running is safe. Each record carries ExternalReference = sp:<date>:<jobId>:<activityId> plus ThirdPartyApp = super-productivity, and existing references are recognised and skipped rather than booked twice.

  • Projects without a mapping are never booked; they are reported with their hours so you can decide.

Time unit

Super Productivity does not document whether its API reports milliseconds or seconds, and being wrong by a factor of 1000 would book nonsense. The unit is therefore derived from the data (a single day cannot exceed 86400 seconds, and the app ticks in whole seconds). If the range is too small to tell, the tool stops and asks you to set timeUnit to "ms" or "s" in the config rather than guessing. The detected unit and the reason are printed on every run.


Installation & Setup

1. Install Dependencies

Run the following command inside this directory to install the @modelcontextprotocol/sdk:

npm install

2. Configuration (Environment Variables)

The server reads its configuration from environment variables. You can set these in your terminal, a .env file (if running locally/testing), or directly in your MCP client's configuration (e.g., Claude Desktop).

Environment Variable

Description

EASYJOB_API_BASE_URL

Required. The absolute URL to the easyJOB app (e.g., https://drid.because.cloud/drid/app).

EASYJOB_USERNAME

The easyJOB login name (used for password grant token lookup & user ID resolution).

EASYJOB_PASSWORD

The easyJOB password (used for password grant token lookup).

EASYJOB_CLIENT_ID

OAuth Client ID (if using client credentials flow or required for password flow).

EASYJOB_CLIENT_SECRET

OAuth Client Secret (if using client credentials flow).

EASYJOB_TOKEN_URL

Optional. Custom OAuth Token URL (defaults to ${EASYJOB_API_BASE_URL}/oauth/token).

EASYJOB_API_TOKEN

Optional. A static, long-lived bearer token (bypasses automatic auth flows).

EASYJOB_HOURS_PER_DAY

Optional. Factor for converting day-based position budgets into hours (default 8).

EASYJOB_ENABLE_GENERIC_WRITES

Optional. Set to 1 to unlock create_or_update_entity and delete_entity. Leave unset on production.


Integration in Claude Desktop

To configure the server in Claude Desktop, edit your claude_desktop_config.json configuration file:

On Linux/macOS: ~/.config/Claude/claude_desktop_config.json or ~/Library/Application Support/Claude/claude_desktop_config.json

Add the server config:

{
  "mcpServers": {
    "easyjob": {
      "command": "node",
      "args": ["/absolute/path/to/jolly-hypatia/index.js"],
      "env": {
        "EASYJOB_API_BASE_URL": "https://drid.because.cloud/drid/app",
        "EASYJOB_USERNAME": "your_username",
        "EASYJOB_PASSWORD": "your_password",
        "EASYJOB_CLIENT_ID": "optional_client_id",
        "EASYJOB_CLIENT_SECRET": "optional_client_secret"
      }
    }
  }
}

Restart Claude Desktop after editing the configuration.


Available Tools

1. get_user_id

  • Description: Get the internal easyJOB User ID for the user configured in the environment (EASYJOB_USERNAME).

  • Arguments: None. (Resolves strictly to the authenticated user context for security).

2. search_jobs

  • Description: Search for jobs by name, short name, or job number.

  • Arguments:

    • query (string, required): Wildcard search term.

3. track_time

  • Description: Log working hours on a specific job in easyJOB. Creates a TimeRecording entry strictly for the configured user timesheet.

  • Arguments:

    • job_id (integer, required): Internal ID of the Job.

    • amount (number, required): Time in hours (e.g., 1.5 or 0.25).

    • description (string, required): Work description.

    • date (string, optional): Date in YYYY-MM-DD format (defaults to today).

    • time_recording_type_id (integer, optional): Custom work type ID (from Activity/Leistung table).

4. query_entities

  • Description: Run a custom FetchsonQuery.

  • Arguments:

    • query (object, required): A FetchsonQuery JSON definition.

5. create_or_update_entity

  • Description: Create or update any entity in easyJOB.

  • Arguments:

    • entity (string, required): Entity name (e.g., 'Task').

    • data (object, required): Entity fields and values.

  • Note: Creating or updating TimeRecording entities via this tool is disabled for security. Use track_time instead.

6. delete_entity

  • Description: Delete an entity by ID.

  • Arguments:

    • entity (string, required): Entity name.

    • id (integer, required): Target entity ID.


Available Prompts

1. import-hours

  • Description: A guided prompt template to help the AI dry-run map, verify, and import a batch of working hours (timesheet) into easyJOB.

  • Arguments:

    • hoursList (string, required): The list or table of working hours to log.


Available Resources

1. easyjob://docs/skill

  • Description: The complete integration guide and safety protocols (content of SKILL.md) read dynamically from disk.

2. easyjob://user/profile

  • Description: Dynamically retrieves the profile, department details, and status of the currently authenticated user from the easyJOB database.

Available Tools

6 tools
create_or_update_entityB

Generic tool to create or update any entity (e.g. TimeRecording, Task) in easyJOB.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe payload representing the entity fields and values.
entityYesName of the entity (e.g., 'TimeRecording', 'Task').

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description only says 'create or update' but lacks details on upsert behavior, authentication, or side effects. For a mutation tool with zero annotations, this is insufficient.

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

Conciseness4/5

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

Single sentence, no filler. Front-loaded with action and scope. Could benefit from more structure but remains efficient.

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

Completeness2/5

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

No output schema, nested object parameter without structure guidance, no return value or error description. Generic tool with many unknowns, incomplete for an agent to invoke 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% with descriptions for both parameters. Description adds no extra meaning beyond schema, so baseline score of 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?

Clearly states it creates or updates any entity, with examples like TimeRecording and Task. Distinguishes from siblings (delete, query, search, track) by covering the create/update use case.

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

Usage Guidelines3/5

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

Implied usage: use for creating/updating entities as opposed to delete or query. No explicit when-to-use or when-not-to-use guidance, nor alternatives mentioned.

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

delete_entityB

Delete an entity in easyJOB by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the entity to delete.
entityYesName of the entity type (e.g., 'TimeRecording').

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as whether deletion is permanent, irreversible, or requires confirmation. Lacks essential context for a mutation tool.

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

Conciseness4/5

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

Single sentence, direct and to the point. Could benefit from slightly more context without losing conciseness.

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

Completeness2/5

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

Minimal description for a deletion tool with no output schema and no annotations. Does not explain return values, side effects, or preconditions. Incomplete for safe usage.

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 parameter descriptions in the schema are adequate. The tool description repeats 'by ID' but adds no new meaning beyond what the schema already provides.

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?

Clearly states the action (delete), the resource (entity in easyJOB), and the method (by ID). Distinguishes from siblings like create_or_update_entity and query_entities.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no mention of prerequisites or when not to use it.

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

get_user_idA

Get the internal easyJOB User ID for the configured user (EASYJOB_USERNAME). The User ID is required to track hours.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries burden. Discloses use of EASYJOB_USERNAME environment variable but does not detail behavior (e.g., caching, error handling, network call). Adequate for a simple getter but lacking depth.

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 concise sentences front-loading purpose and context. No superfluous information. Every sentence earns its place.

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?

For a zero-parameter tool without output schema, description is sufficient. Identifies what is retrieved and its necessity for time tracking. Could mention return type but not critical.

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?

Input schema has no parameters, but description adds value by specifying the configured user comes from EASYJOB_USERNAME. This clarifies implicit source. With 100% schema coverage, description enhances meaning.

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?

Description clearly states the tool gets the internal easyJOB User ID for the configured user. Verb 'Get' and resource 'internal easyJOB User ID' are specific. Distinguishes from sibling tools like track_time which requires this ID.

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?

Explicitly mentions the User ID is required to track hours, implying use before track_time. Does not explicitly state when not to use or alternatives, but clear enough for a simple utility.

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

query_entitiesB

Execute a generic FetchsonQuery against any easyJOB entity. Allows filtering and custom selections on User, Job, TimeRecording, Task, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe FetchsonQuery configuration object.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, so description bears full responsibility. It calls the query 'generic' but doesn't explain behavior like read-only nature, pagination, performance impact, or security needs. Insufficient disclosure for a potentially heavy query.

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 sentences, front-loaded with action and scope. No filler words; every sentence adds value.

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

Completeness2/5

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

No output schema and no explanation of response format, error cases, or typical use. The description is too brief for a complex query tool with a nested input object.

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%, so parameters are fully documented in the schema. Description adds context about entity types but no additional semantics beyond schema. Baseline score 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?

Clearly states the verb 'Execute a generic FetchsonQuery' and the resource 'any easyJOB entity', listing examples like User, Job, TimeRecording. Distinguishes well from sibling tools like create_or_update_entity and delete_entity.

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

Usage Guidelines3/5

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

Implicitly suggests use for querying/reading data but lacks explicit when-to-use vs. siblings, no exclusions or alternative recommendations. Middle score due to absence of guidance.

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

search_jobsA

Search for jobs in easyJOB by Name, ShortName, or JobNo. Returns matching jobs with their IDs. Always run this to find the correct JobId before logging time.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch term matching the job's Name, ShortName, or JobNo (wildcard like search).

TDQS

A4/5.0
Behavior3/5

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

No annotations provided. Description implies read-only but does not explicitly state safety. Lacks details on result limits or pagination. Adequate but could be improved.

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 concise sentences: action, return, usage. No fluff, front-loaded, and efficient.

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?

For a simple 1-parameter search tool without output schema, description covers purpose, return, and usage context. Missing details on result set size but sufficient for basic understanding.

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 already has description with wildcard mention. Description adds that query matches Name, ShortName, or JobNo, which provides useful context but is not extensive. Schema coverage 100% sets baseline at 3.

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?

Clearly states the tool searches for jobs by Name, ShortName, or JobNo and returns IDs. Distinguishes from siblings like query_entities by being job-specific.

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?

Explicitly instructs to use this before logging time, linking to track_time sibling. Provides clear workflow context but no when-not or alternatives.

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

track_timeA

Log working hours on a specific job in easyJOB. Creates a TimeRecording entry for the configured user. Supports duration (amount) OR start/end times (from_time/to_time).

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoOptional date for the entry in YYYY-MM-DD format. Defaults to today.
amountNoThe duration of time in hours (e.g., 1.5 for 1h 30m). Optional if from_time and to_time are provided.
job_idYesThe internal ID of the Job.
to_timeNoOptional ending time in HH:MM format (e.g., '15:45').
from_timeNoOptional starting time in HH:MM format (e.g., '13:00').
product_idNoOptional internal ProductId.
activity_idNoOptional internal ID of the Activity (Leistung) associated with the job (e.g., 32004).
customer_idNoOptional internal CustomerId. Usually resolved automatically from the JobId.
descriptionYesDetails of what was worked on.
time_recording_type_idNoOptional internal TimeRecordingTypeId (type of work).

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions creating an entry and supports duration or start/end times, but omits critical behavioral info like authentication requirements, idempotency, or error handling.

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 concise sentences that front-load the main action and add key details about parameter usage. No unnecessary information.

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

Completeness3/5

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

Description covers the primary function and key parameter constraint, but lacks details on return values, error handling, and prerequisites. Adequate but with gaps.

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%, but description adds value by specifying mutual exclusivity of amount vs from_time/to_time, which is not in individual parameter descriptions.

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?

The description clearly states it logs working hours on a specific job in easyJOB and creates a TimeRecording entry. It distinguishes from sibling tools which are general CRUD or search operations.

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?

Description implies use for logging time on jobs, but does not explicitly state when not to use or alternatives. Sibling tools are for different purposes, so context is clear.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedcreate_or_update_entity
    • First observeddelete_entity
    • First observedget_user_id
    • First observedquery_entities
    • First observedsearch_jobs
    • First observedtrack_time

TDQS

A3.7/5.0
Disambiguation4/5

Most tools have distinct purposes (track_time vs. generic CRUD, search_jobs, etc.), but the generic create_or_update_entity could cause slight confusion when a specialized tool like track_time exists for similar entities.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using lowercase snake_case, e.g., create_or_update_entity, delete_entity, query_entities, search_jobs, track_time.

Tool Count5/5

Six tools cover the core domain (job management, time tracking) without being excessive or insufficient; each tool serves a clear purpose.

Completeness3/5

Generic CRUD tools cover basic operations but lack specialized tools for updating jobs or managing users; the set works but has notable gaps for a full workflow.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP (Model Context Protocol) server that enables integration with the Simplifier Low Code Platform. This server provides tools and capabilities for creating and managing Simplifier Connectors and BusinessObjects through the platform's REST API.
    17
    116
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server for OAuth 2.0 authentication supporting Device Code and Client Credentials flows, enabling secure token management for MCP applications.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server with HTTP/stdio support, a web admin panel for managing services, capabilities, and user permissions with Bearer token authentication, enabling relay and access control for MCP tools.
    -

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/chrustek-studio/easyjob-mcp-server'

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