Skip to main content
Glama
theYahia

@theyahia/getcourse-mcp

by theYahia

🗄 Repository archived

Development has moved to theYahia/WWmcp — a monorepo of MCP servers for non-Western APIs: CIS, MENA, Africa, LATAM, Southeast Asia. Shared core @theyahia/mcp-core, unified CI, unified release pipeline.

The current version of what was here: servers/getcourse/

The npm package is the same — @theyahia/getcourse-mcp, installs and works as before. Nothing is updated here anymore. Issues and pull requests — in WWmcp.

Archived — development moved to theYahia/WWmcp, a monorepo of MCP servers for non-Western APIs. The current version of this package now lives at servers/getcourse/. The npm package @theyahia/getcourse-mcp is unchanged. Please open issues and pull requests there.

@theyahia/getcourse-mcp

MCP server for GetCourse LMS API. 3 tools for users, deals, and user creation.

npm license

Related MCP server: Gong MCP Server

Quick Start

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "getcourse": {
      "command": "npx",
      "args": ["-y", "@theyahia/getcourse-mcp"],
      "env": {
        "GETCOURSE_DOMAIN": "myschool.getcourse.ru",
        "GETCOURSE_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code

claude mcp add getcourse -- npx -y @theyahia/getcourse-mcp

Set env: GETCOURSE_DOMAIN + GETCOURSE_API_KEY.

Cursor / Windsurf

{
  "getcourse": {
    "command": "npx",
    "args": ["-y", "@theyahia/getcourse-mcp"],
    "env": {
      "GETCOURSE_DOMAIN": "myschool.getcourse.ru",
      "GETCOURSE_API_KEY": "your-api-key"
    }
  }
}

Tools

Tool

Description

get_users

List users with optional status/date filters

create_user

Create or update a user, add to group/deal

get_deals

List deals (orders) with status/date filters

Auth

Variable

Required

Description

GETCOURSE_DOMAIN

Yes

Account domain (e.g. myschool.getcourse.ru)

GETCOURSE_API_KEY

Yes

API secret key from account settings

HTTP Transport

HTTP_PORT=3000 npx @theyahia/getcourse-mcp
# or
npx @theyahia/getcourse-mcp --http 3000

Endpoints: POST /mcp (JSON-RPC), GET /health (status).

Skills

  • skill-students -- query and manage GetCourse students

  • skill-deals -- query GetCourse deals/orders by status and date

License

MIT

Available Tools

3 tools
create_userB

Создание или обновление пользователя в GetCourse.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoГород
emailYesEmail пользователя
phoneNoТелефон
last_nameNoФамилия
first_nameNoИмя
group_nameNoНазвание группы для добавления
deal_offer_codeNoКод предложения для создания заказа

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description is the only source of behavioral information. It discloses that the operation can both create and update a user, but it does not state the upsert key, side effects, required permissions, or what happens on conflict. This is inadequate for a mutating tool with zero annotation coverage.

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?

The description is a single short, front-loaded sentence with no filler. Every word contributes to stating the operation and target system.

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?

The description is too sparse for a 7-parameter write operation with no annotations or output schema. Missing context includes the identity/email key for update behavior, when to prefer this over get_users/get_deals, and expected response or failure modes.

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 all seven parameters already have individual descriptions. The tool description adds no parameter-level meaning beyond confirming the action, matching the baseline of 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?

The description names the exact operation (create or update) and resource (user in GetCourse), making the tool's purpose immediately clear. The sibling tools are read-oriented (get_users, get_deals), so this write/upsert tool is conceptually distinct without needing extra wording.

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 is given about when to use this tool versus the sibling get_users/get_deals, nor any conditions or exclusions. The only implied context is 'GetCourse', which is not enough to help an agent decide between creating/updating and reading.

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

get_dealsC

Получение списка заказов (сделок) GetCourse.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoФильтр по статусу заказа
created_toNoДата создания до (YYYY-MM-DD)
created_fromNoДата создания от (YYYY-MM-DD)

TDQS

C2.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 of behavioral disclosure. It does convey that this is a read-style 'list' operation, but it does not mention response format, pagination, authentication requirements, side effects, or any limits. This is a significant gap for an unannotated tool.

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?

The description is a single concise sentence that front-loads the core purpose: retrieving a list of orders. There is no filler or redundant wording, so every part earns its place.

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?

Given the absence of annotations and an output schema, the description is too thin to be fully actionable. It explains what the tool returns conceptually but not how the result is shaped, whether the filters combine, or what operational constraints apply. Low parameter complexity helps, but the lack of contextual detail remains a clear gap.

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 all three parameters already have meaningful descriptions in the input schema. The tool description adds no additional parameter semantics, which matches the baseline of 3; the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states a specific action and resource: 'Получение списка заказов (сделок) GetCourse' (getting a list of orders/deals). This is unambiguous about what the tool does, though it does not explicitly differentiate it from the sibling tools get_users and create_user.

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?

The description gives no guidance about when to use this tool versus alternatives, no context about prerequisites, and no explicit use-case framing. The intended usage is only implied by the tool name and the phrase 'list of orders', but no practical selection guidance is provided.

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

get_usersC

Получение списка пользователей GetCourse.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoФильтр по статусу пользователя
created_toNoДата регистрации до (YYYY-MM-DD)
created_fromNoДата регистрации от (YYYY-MM-DD)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral disclosure burden, but it only states that the tool retrieves a list of users. It does not mention pagination, default filtering behavior, response format, volume limits, or whether an empty list vs. an error occurs on no results.

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?

The description is a single efficient sentence with no wasted words, and the core purpose is front-loaded. It is appropriately sized for a simple read tool, though it contains no additional supporting details.

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?

The tool has three optional filter parameters and no output schema, yet the description provides only a one-line purpose statement. Given the absence of annotations, an agent lacks sufficient context about how filters interact, what data is returned, and what caveats apply.

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%, with all three parameters (status, created_to, created_from) already documented in the schema. The description itself adds no extra meaning about parameter usage, combination rules, or formatting nuances, so the baseline score of 3 applies.

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

Purpose4/5

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

The description states a clear purpose: 'Получение списка пользователей GetCourse' (Getting a list of GetCourse users), which is a specific verb+resource pairing. However, it does not distinguish itself from any sibling tools, and no sibling names were provided to allow for differentiation.

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?

The description gives no guidance on when to use this tool, what scenarios it fits, or which alternatives might be better suited. An agent gets no context about conditions that would make this tool the right choice.

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. 3 tool updatesv1.1.0
    • First observedcreate_user
    • First observedget_deals
    • First observedget_users

TDQS

B3.4/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct resource and action: getting users, creating/updating users, and getting deals. There is no overlap or ambiguity between the tools.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with get_ or create_ prefixes (get_users, create_user, get_deals). Naming is predictable and uniform.

Tool Count5/5

With exactly 3 tools, the count falls within the well-scoped 3-15 range. Each tool serves a clear core function for GetCourse integration without unnecessary bloat.

Completeness3/5

The tool surface covers listing users, upserting users, and listing deals, but notable operations are missing: no delete for users and no create/update/delete for deals. This creates partial CRUD coverage with gaps.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers