Codinfy MCP
The Codinfy MCP server connects AI agents to the Codinfy platform across several capability areas:
License Management: Validate purchase codes, check license status (active, expired, suspended, cancelled) including grace periods, and list user-owned licenses.
Payments (GeniusPay): Create checkout sessions (returning a payment URL or USSD push reference), poll payment status by reference, and list available payment operators by country.
Marketplace: Browse published products with pagination, fetch product details by slug or ID, and run full-text searches across the catalog.
Branding & Design: Retrieve design tokens (palette, typography, spacing), public brand metadata (site name, logos, social links), and signed URLs for brand assets.
OAuth / Identity: Fetch OpenID Connect discovery metadata and retrieve JWKS for verifying ID tokens.
Advertising: List available ad units for a publisher and retrieve the public Ads SDK configuration for a site.
Analytics: Track public events to Codinfy's analytics pipeline for CRM and product analytics purposes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Codinfy MCPvalidate license key ABC-123"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@codinfy/mcp
The official Codinfy public MCP server
Connect any AI agent — Claude Code/Desktop, Cursor, Codex, Continue, Cline, Windsurf — to the Codinfy platform: validate licenses, check updates, browse the marketplace catalog and fetch the official design tokens.
📦 npm · 🌐 codinfy.com · 📚 docs.codinfy.com/mcp · 🛡️ Security
🇬🇧 English · 🇫🇷 Français
Status
v0.2.0 — 10 tools live, every one backed by a real shipped Codinfy API (no stubs, ever). Payments, OAuth (Login with Codinfy) and Ads tools ship together with their platform APIs.
Related MCP server: synter-mcp-server
Quick start
# Claude Code
claude mcp add codinfy -e CODINFY_LICENSE_SECRET=xxx -- npx -y @codinfy/mcpConfigs for Claude Desktop, Cursor, Codex, Continue and Cline:
examples/. Full guide: docs/getting-started.md.
Tools
Category | Tools |
Licenses (HMAC-signed) |
|
Catalog |
|
Platform |
|
Details: docs/api-reference.md ·
problems: docs/troubleshooting.md.
Environment
Variable | Required | Purpose |
| license tools only | HMAC secret delivered with your license — never commit it |
| no | default |
| no | default |
| no |
|
Security model
Requests to the License API are signed HMAC-SHA256 over the raw body with an anti-replay timestamp (±300 s) — the same wire contract as the official PHP and Node SDKs (cross-language test vector in
tests/).Responses carry an RS256 JWT: verify it locally in your script (see the anti-tampering guide).
X-RateLimit-*headers are relayed in every tool result so agents can self-throttle (60 req/min/IP).This public server never exposes internal Codinfy tooling (rule R15).
Development
npm install
npm test # vitest — includes the PHP cross-language HMAC vector
npm run build # tsc → dist/
node dist/index.js # stdio server, "ready on stdio (10 tools)"🌍 Connect with us
Network | Codinfy | Bakala Goin (Founder & CEO) |
TikTok | — | |
X (Twitter) | — |
License
MIT © 2026 RAFLOX SAS — Codinfy, Abidjan, Côte d'Ivoire.
Codinfy — by RAFLOX SAS · 📧 contact@codinfy.com · 🌐 codinfy.com
Part of the Codinfy MCP ecosystem · codix-build-mcp
Available Tools
17 toolscheck_license_statusA
Return the current status of a license (active | expired | suspended | cancelled) and its grace period.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose all behavioral traits. It correctly identifies this as a read operation returning status and grace period, but does not mention data source, latency, or any potential side effects. It is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence that conveys all necessary information efficiently. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description carries the burden of explaining the return value. It does so by listing possible statuses and mentioning grace period, which is sufficient for a simple read. However, it lacks context about prerequisites or behavior when no license exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is trivially 100%. The description adds value by specifying the exact output format (status values and grace period), which goes beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return the current status of a license') and enumerates the possible status values ('active | expired | suspended | cancelled') and the additional 'grace period' field. This is specific and distinct from sibling tools like 'validate_license' which likely performs a binary validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. For example, 'validate_license' might be for simple validity checks while this is for detailed status. The description does not mention preconditions or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkoutA
Create a Codinfy Pay checkout session via GeniusPay direct API. Returns a pay.codinfy.com URL or a USSD push reference.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It states it creates a session and returns a URL or USSD reference, but omits side effects, destruction behavior, authentication requirements, rate limits, or what happens if creation fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the tool's action and output without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, output schema, or annotations, the description is somewhat complete for a simple creation tool. However, it lacks details on required context (e.g., authentication) and error conditions, making it adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters, so no parameter documentation is needed. Description does not add parameter information, but baseline is 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool creates a checkout session via a specific API, with the verb 'Create' and resource 'checkout session'. It distinguishes from sibling tools like get_payment_status and list_geniuspay_operators by specifying the action of creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. While the purpose implies use for initiating payment, there is no mention of prerequisites, alternatives, or context relative to other payment tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ads_configA
Return the public configuration of the Codinfy Ads SDK for the calling site.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states that the tool returns 'public' configuration, implying it is safe and read-only, but does not explicitly mention side effects, authentication requirements, rate limits, or any constraints. This is insufficient for an AI agent to fully understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It front-loads the action ('Return') and immediately specifies the resource. Every word contributes meaning, and the structure is optimal for a simple, no-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no input parameters and no output schema, the description is minimally adequate. However, it could be more complete by specifying what constitutes the 'public configuration' (e.g., version, enabled features) or how it relates to the Ads SDK. The simplicity of the tool keeps this from being a major gap, but some context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (0 parameters), and schema description coverage is 100% by default. The description adds no parameter information because none exist. Per guideline, baseline for 0 parameters is 4, and this description meets that baseline without needing to explain parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Return the public configuration of the Codinfy Ads SDK for the calling site.' It uses a specific verb ('Return') and resource ('public configuration'), and distinguishes itself from sibling tools like 'list_ad_units' or 'get_brand_settings' by focusing on Ads SDK configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not specify prerequisites, context, or situations where other tools like 'check_license_status' or 'get_brand_settings' would be more appropriate. The usage context must be inferred entirely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brand_assetsA
Return signed URLs for brand assets (logo light/dark/icon/og/pwa).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation without behavioral details. No annotations are provided, but the description does not contradict any implied behavior. It does not disclose that URLs are signed (time-limited or permissions), which could be relevant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and resource. Every word is necessary, with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description covers the essential info: what is returned (signed URLs) and for which assets. It could be improved by noting if assets require prior configuration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the baseline is 4. The description adds value by enumerating the asset types returned, going beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it returns signed URLs for specific brand asset types (logo light/dark/icon/og/pwa). This clearly differentiates from sibling tools like get_brand_settings or get_design_tokens, which deal with different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide guidance on when to use this tool versus alternatives. However, given its simple nature (no parameters, read-only), the usage context is implicitly clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_brand_settingsA
Return public brand metadata (site name, logos, social links) — sourced from Brand Manager (R13).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It correctly indicates a read operation returning public data, but does not address potential errors, response format, or any side effects. For a simple getter, the basics are covered, but more detail (e.g., null handling) would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that delivers key information efficiently. Every word adds value—verb, resource, examples, and source. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, no output schema), the description adequately lists example fields and the data source. However, it could specify whether the response is a flat object or nested, and whether all fields are guaranteed present. Still, it sufficiently covers the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so baseline is 4. The description does not need to explain parameters, and it appropriately focuses on what the tool returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Return' and the resource 'public brand metadata' with concrete examples (site name, logos, social links). It also adds the source detail (Brand Manager R13), which distinguishes it from potential siblings like get_brand_assets or get_design_tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention prerequisites, typical scenarios, or situations where another tool would be more appropriate. With 17 sibling tools, explicit usage context would be valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_design_tokensA
Return Codinfy's current design tokens (palette, typography, spacing) from Brand Manager.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of behavioral disclosure. It only states 'Return' without mentioning safety, authentication, caching, or side effects. For a read-like operation, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous information. It front-loads the key verb and resource, making it efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides only the core purpose. It lacks details on return format, possible errors, or prerequisites, making it minimally complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0 parameters, the input schema is fully covered. The description adds context about what is returned (palette, typography, spacing) beyond the empty schema, which is helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the specific resource 'Codinfy's current design tokens' with explicit categories (palette, typography, spacing). It distinguishes from siblings like get_brand_assets and get_brand_settings by focusing on design tokens from Brand Manager.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description implies it's for retrieving design tokens, but does not mention exclusions or comparisons with sibling tools, which is adequate but not excellent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_payment_statusA
Poll a payment status by reference (used by the wait screen on pay.codinfy.com).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description indicates a read-only polling operation but does not disclose any side effects, limits, or behavior on invalid references. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with key action and context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple polling tool with no parameters and no output schema, the description adequately covers purpose and usage context. Could mention potential return values or error handling but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters with 100% coverage. Description adds no param info because none exist. Baseline for no parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Poll', resource 'payment status', method 'by reference', and context 'used by the wait screen on pay.codinfy.com'. Distinct from siblings which deal with licenses, products, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for polling payment status in wait screen, but no explicit comparison to alternatives or when not to use. Missing guidance on when to switch to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_productC
Get a product by slug or id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states 'Get a product', implying read-only, but does not disclose authentication needs, error behaviors, or side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely brief (one sentence), but omits essential information about parameters, return format, and usage context. The conciseness comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and a contradictory parameter structure, the description fails to provide a complete understanding of the tool's behavior and usage. Critical gaps in describing inputs, outputs, and error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description claims identification by 'slug or id', but the input schema is an empty object (0 parameters). This contradiction renders the description misleading and unhelpful for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'product', and specifies identifying by 'slug or id'. This distinguishes it from sibling tools like list_products and search_products, which are for listing/searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like list_products or search_products. The description does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ad_unitsA
List the Codinfy Ad Network ad units available for a publisher.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It states the tool lists ad units but gives no information about side effects, authentication, rate limits, or response format. For a simple read-only list, this is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no wasted words. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and low complexity, the description is mostly complete. It could mention the type of items returned, but for a simple list tool it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is 100% (none to describe). The description adds no parameter information, which is acceptable because none exist. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states to 'List the Codinfy Ad Network ad units available for a publisher', identifying the verb (List), resource (ad units), and context (for a publisher). It is distinct from sibling tools like get_ads_config or list_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings. The implication is clear: use it to list ad units. However, alternatives are not mentioned, and there are no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_geniuspay_operatorsA
List the active GeniusPay operators (per country) with their logos and payment methods.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. The phrase '(per country)' is ambiguous—it does not explain how the country is determined (e.g., from context or parameter). Also, no mention of authentication or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant information. It efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and parameters, the description should more thoroughly explain the input context (e.g., how country filtering works) and potential limitations. As it stands, it is adequate but leaves some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description adds meaning by specifying that the list includes active operators, logos, payment methods, and is grouped per country. This clarifies the output beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'list' and the resource 'active GeniusPay operators', and clarifies the output includes logos and payment methods per country. It clearly distinguishes from sibling tools like list_products or list_ad_units.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description is clear but lacks contextual cues such as 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.
list_productsA
List published marketplace products (cursor-paginated).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions cursor-pagination, which is a key behavioral trait, but does not disclose pagination details (e.g., page size, cursor handling). The tool has no parameters, so no further behavioral traits are expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the key purpose, and contains no unnecessary words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is minimal but sufficient. It clearly states what the tool does and that it is paginated. Could be improved by explaining cursor usage or return structure, but for a simple list tool it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema description coverage is 100%. The description adds no parameter info, but none is needed. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List), resource (published marketplace products), and a key behavioral feature (cursor-paginated). It distinguishes from siblings like 'search_products' (filtering) and 'get_product' (single item).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it is for listing all published products with pagination, but provides no explicit guidance on when to use it versus alternatives like 'search_products'. No exclusions or context-specific advice is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_licensesA
List all licenses owned by the current authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the scope ('owned by the current authenticated user') but omits important details such as whether the operation is read-only, potential performance implications, pagination, or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded with the action and resource, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description is adequate for a simple list operation, it lacks details about the return format (e.g., fields included, whether it's paginated). Given the absence of an output schema and the presence of many sibling tools, slightly more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and is trivially 100% covered. The description adds meaning by specifying what the tool returns (licenses owned by the user), which is sufficient given the lack of parameters. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list), the resource (licenses), and the scope (owned by current authenticated user). It effectively distinguishes from sibling tools like 'check_license_status' and 'validate_license' which imply more specific or single-record operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (to view all licenses of the current user) but provides no explicit guidance on when not to use it or which alternative tool to choose for different scenarios, such as checking a specific license's status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oauth_discovery_metadataA
Return the OpenID Connect discovery metadata (auth.codinfy.com/.well-known/openid-configuration).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation (returning metadata). No annotations are provided, so the description carries the burden; however, it does not disclose auth requirements, rate limits, or side effects. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is clear, front-loaded, and free of unnecessary text. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple metadata retrieval tool with no parameters, the description provides the essential purpose. It could mention the standard format of the metadata, but the well-known standard reduces the need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is trivially 100%. The description does not add parameter-specific information, matching the baseline of 3 for high coverage with no params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the OpenID Connect discovery metadata, including the specific URL. It distinguishes itself from sibling tools like oauth_jwks, which returns JWKS keys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., oauth_jwks). The description merely states what it does without any context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oauth_jwksA
Return the JWKS used to verify ID tokens issued by Codinfy Identity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral info. It describes a simple read operation without side effects, but lacks disclosure on authentication requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no fluff, front-loaded with purpose. Every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple read operation with no parameters or output schema. Could mention if the endpoint is public, but not strictly necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (input schema is empty), so schema coverage is 100%. Baseline 4 applies; description adds no param info but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Return' and the resource 'JWKS' with its purpose to verify ID tokens, distinguishing it from sibling tools like oauth_discovery_metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It implies token verification but does not provide explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_productsB
Full-text search across the marketplace catalog.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Full-text search across the marketplace catalog.' Lacks details on authentication, rate limits, result format, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no unnecessary words. However, it may be too brief to be fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no parameters, the description is insufficient for a full-text search tool—lacks details on how the query is provided (implicitly through body/headers?) and what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero parameters with full coverage; baseline score of 4 applies. Description adds no parameter info but is not needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs full-text search across the marketplace catalog, which distinguishes it from siblings like get_product (single item) and list_products (listing all).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives (e.g., list_products for browsing). No context about prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_eventA
Track a public event on Codinfy's analytics pipeline (CRM funnel + product analytics).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, required permissions, or response behavior. 'Track' implies a write operation, but no further details are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, and well-structured sentence with no unnecessary words. Every part contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless tool, the description covers the essential purpose. However, it lacks any mention of return values or confirmation, which would be helpful given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is 100%, so the description does not need to explain parameters. It adds value by specifying the analytics pipeline context, which is more than the empty schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('track'), the resource ('public event'), and the context ('Codinfy's analytics pipeline – CRM funnel + product analytics'). It distinguishes well from sibling tools which are mostly get/list/check/create operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor are there any conditions or prerequisites mentioned. The description only states what the tool does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_licenseC
Validate a Codinfy purchase code against the licensing API (HMAC + JWT).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions HMAC+JWT for authentication but does not state whether the tool is read-only, idempotent, or has side effects. No info on rate limits or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise and front-loaded with the core action. However, it sacrifices necessary details for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is incomplete. It does not explain how the purchase code is supplied (e.g., via request context or headers), nor does it describe the return value or success/failure indicators. The mention of HMAC+JWT adds technical color but does not compensate for missing operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (type: object with no properties), but the description implies a purchase code is needed. This contradiction misleads the agent about required inputs. Schema description coverage is 100% only because there are no parameters, but the description fails to clarify the missing parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it validates a Codinfy purchase code using HMAC+JWT, which is a specific action. However, it is unclear how the purchase code is provided since the input schema has no parameters, creating ambiguity about the tool's actual input method.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings like check_license_status or list_user_licenses. The description does not specify prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
All 17 tools have clearly distinct purposes. Each targets a specific resource and action (e.g., license validation vs. status check, brand assets vs. settings). There is no overlap that would confuse an agent.
All tools use a consistent verb_noun snake_case pattern (e.g., create_checkout, get_product, list_ad_units). Even OAuth tools follow this implicitly. No mixing of conventions.
17 tools cover multiple subdomains (licensing, payments, ads, branding, marketplace, auth, analytics). While slightly above the typical 15-tool threshold, each tool serves a distinct need and the count is justified for the platform's breadth.
The tool surface covers key read operations and essential writes (checkout creation, event tracking) across all subdomains. Minor gaps exist (e.g., no product creation or license revocation), but for a client-facing API these are acceptable and do not hinder common workflows.
Maintenance
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
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
AlicenseAqualityFmaintenanceMCP Server that connects AI agents to Chargebee Platform.24716MIT- AlicenseAqualityCmaintenanceMCP server for AI agents to manage ad campaigns across Google, Meta, LinkedIn, Microsoft, Reddit, TikTok, and more2127817MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for AgentPay — the payment gateway for autonomous AI agents. Fund a wallet once, give your agent the key, and it discovers, provisions, and pays for tool APIs on its own. One key, every tool.1121MIT
- AlicenseNot gradedqualityCmaintenanceA unified MCP server providing AI agents with 40+ developer APIs including geolocation, crypto prices, DNS lookup, and web scraping. Enables natural language access to various tools through a single gateway.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/bakalagoin/codinfy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server