Skip to main content
Glama
FinCobra MCP

FinCobra MCP

by dexstandard

FinCobra MCP — Claude, Cursor, Codex용 암호화폐 Checkout

Model Context Protocol(MCP) 서버로, FinCobra 암호화폐 Checkout 및 결제를 위한 것입니다. BTC, USDT, USDC에 대한 호스팅 인보이스를 생성합니다(결제 자산은 대시보드 결제 수단에서 가져오며, 금액은 USD입니다). Claude Code, Cursor, Codex에서 작동합니다. Watchlist 접근은 읽기 전용입니다. 아직 npm에 없습니다 — GitHub에서 설치하세요.

문서: FinCobra Checkout MCP

fincobra-mcp 0.1.0은 아직 npm에 게시되지 않았습니다. 게시될 때까지 GitHub에서 설치하세요:

npx -y github:dexstandard/fincobra-mcp

npx -y github:dexstandard/fincobra-mcp#v0.1.0으로 소스 릴리스를 고정하세요. Node.js 20+가 필요합니다.

  • Checkout: 호스팅 결제 인보이스를 생성하고 상태를 읽습니다.

  • Watchlist: 읽기 전용 소스 목록 및 수동 순자산 내역.

이것은 결제 플랫폼이 아니며 Watchlist 쓰기 API도 아닙니다.

도구 (v0)

Checkout

도구

기능

create_invoice

USD 인보이스를 생성합니다. id와 호스팅된 paymentUrl(/pay/:id)을 반환합니다.

get_invoice

id로 알려진 인보이스를 조회합니다. 상태, paymentUrl, 금액을 반환합니다.

list_invoices 도구는 없습니다. Checkout API 키로는 인보이스를 나열할 수 없습니다.

인보이스 금액은 USD입니다. 결제 자산은 대시보드 결제 수단에서 가져옵니다:

네트워크

자산

Bitcoin (xpub)

BTC

Ethereum mainnet

USDT, USDC

Solana

USDT, USDC

Arbitrum One

USDC

Base

USDC

Watchlist (읽기 전용)

도구

기능

get_net_worth

수동 은행/현금/부동산 합계를 USD로 표시합니다. cryptoUsd는 null입니다.

list_sources

기존 목록 API의 지갑, 거래소, 수동 자산을 표시합니다.

get_source

id로 하나의 소스를 조회합니다(wallet:12, exchange:binance, manual:3).

Watchlist에는 공개 API 키가 없습니다. 인증은 Watchlist 웹 앱에서 사용하는 Identity session 쿠키입니다.

은행, 현금, 부동산은 실시간 은행 또는 소유권 피드가 아닌 수동 제품 항목입니다. 실시간 암호화폐 USD 잔액은 Watchlist UI에서 계산되며 목록 API에 포함되지 않습니다. 서버는 cryptoUsd 합계를 임의로 만들지 않습니다.

Watchlist 도구는 지갑을 추가하거나, 은행을 편집하거나, 결제를 변경하거나, 세금을 내보내지 않습니다.

Related MCP server: Yolfi MCP Server

환경

변수

필수 여부

설명

FINCOBRA_CHECKOUT_API_KEY 또는 FINCOBRA_API_KEY

두 영역 중 하나

Checkout 대시보드 API 키(fc_live_...). 둘 다 설정된 경우 Checkout 전용 이름이 우선합니다.

FINCOBRA_CHECKOUT_BASE_URL

아니요

Checkout 오리진. 기본값은 https://fincobra.com입니다.

FINCOBRA_WATCHLIST_SESSION_TOKEN 또는 FINCOBRA_SESSION_TOKEN

두 영역 중 하나

Identity session 쿠키 값. 둘 다 설정된 경우 Watchlist 전용 이름이 우선합니다.

FINCOBRA_WATCHLIST_BASE_URL

아니요

Watchlist 오리진. 기본값은 https://watch.fincobra.com입니다.

Checkout, Watchlist 또는 둘 다 구성하세요. 누락된 영역의 도구는 구성 오류를 반환합니다.

개발 오리진: https://dev.fincobra.com 및 https://watch.dev.fincobra.com.

Cursor

.cursor/mcp.json(프로젝트) 또는 ~/.cursor/mcp.json(사용자)에 추가하세요:

{
  "mcpServers": {
    "fincobra": {
      "command": "npx",
      "args": ["-y", "github:dexstandard/fincobra-mcp"],
      "env": {
        "FINCOBRA_CHECKOUT_API_KEY": "fc_live_...",
        "FINCOBRA_CHECKOUT_BASE_URL": "https://fincobra.com",
        "FINCOBRA_WATCHLIST_SESSION_TOKEN": "<session-cookie-value>",
        "FINCOBRA_WATCHLIST_BASE_URL": "https://watch.fincobra.com"
      }
    }
  }
}

Claude Code

claude mcp add fincobra \
  --env FINCOBRA_CHECKOUT_API_KEY=fc_live_... \
  --env FINCOBRA_WATCHLIST_SESSION_TOKEN=<session-cookie-value> \
  -- npx -y github:dexstandard/fincobra-mcp

또는 동일한 mcpServers 객체를 .mcp.json / ~/.claude.json에 추가하세요.

Codex

codex mcp add fincobra \
  --env FINCOBRA_CHECKOUT_API_KEY=fc_live_... \
  --env FINCOBRA_WATCHLIST_SESSION_TOKEN=<session-cookie-value> \
  -- npx -y github:dexstandard/fincobra-mcp

또는 ~/.codex/config.toml에:

[mcp_servers.fincobra]
command = "npx"
args = ["-y", "github:dexstandard/fincobra-mcp"]

[mcp_servers.fincobra.env]
FINCOBRA_CHECKOUT_API_KEY = "fc_live_..."
FINCOBRA_WATCHLIST_SESSION_TOKEN = "<session-cookie-value>"

로컬에서 실행

npm install
FINCOBRA_CHECKOUT_API_KEY=fc_live_... \
FINCOBRA_WATCHLIST_SESSION_TOKEN=... \
npm start

프로세스는 stdio를 통해 MCP를 사용합니다. 애플리케이션 로그를 stdout에 작성하지 마세요.

스모크 테스트

FINCOBRA_CHECKOUT_API_KEY=fc_live_... \
FINCOBRA_WATCHLIST_SESSION_TOKEN=... \
npm run smoke

단위 테스트는 API를 모킹하므로 자격 증명이 필요하지 않습니다:

npm test

인증

영역

자격 증명

헤더 / 쿠키

Checkout

대시보드 API 키(fc_live_...)

X-Api-Key

Watchlist

Identity 세션 쿠키(session)

Cookie: session=...

로그인된 브라우저(DevTools → Application → Cookies)에서 Watchlist session 쿠키를 복사하세요. 키와 세션 토큰은 채팅이 아닌 MCP 서버 환경 변수에 보관하세요.

API

Checkout:

  • POST /api/checkout/invoices

  • GET /api/checkout/invoices/:id

  • 인증: X-Api-Key

Watchlist:

  • GET /api/watchlist/wallets

  • GET /api/watchlist/exchanges

  • GET /api/watchlist/manual-assets

  • GET /api/watchlist/fx-rates

  • 인증: Cookie: session=...

결제자를 paymentUrl로 보내세요. confirmed와 paid_out_of_band는 결제 완료로 처리하세요. 확인되지 않은 암호화폐 결제를 수락하지 않는 한 payment_detected는 대기 중으로 처리하세요.

라이선스

MIT

Available Tools

5 tools
create_invoiceCreate Checkout invoiceA

Create a FinCobra Checkout invoice in USD and return the hosted payment URL. Payment methods (Bitcoin, Ethereum USDT/USDC, Solana USDT/USDC, Arbitrum One USDC, Base USDC) are those enabled in the merchant dashboard.

NameRequiredDescriptionDefault
amountUsdYesInvoice amount in USD. Minimum 0.01. Settlement coins and chains come from the merchant Checkout payment methods, not this field.
descriptionNoProduct or service description shown on the invoice.
customerEmailNoCustomer email for reconciliation.
merchantReferenceNoYour order or internal reference.

Output Schema

NameRequiredDescription
idYes
statusYes
amountUsdYes
paymentUrlYes
productNameYes
paymentCoverageYes
merchantReferenceYes
receivedAmountUsdYes
confirmedAmountUsdYes
remainingAmountUsdYes

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses the core side effect (creates an invoice), the return value (hosted payment URL), and an important behavioral constraint (payment methods come from the merchant dashboard, not from parameters). This adds meaningful context beyond the annotations, which only indicate readOnly, idempotent, and destructive hints are all false.

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 two sentences with no filler. The primary action and return value are front-loaded, and the payment-method caveat is included compactly.

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

Completeness5/5

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

For a create operation with a 100%-covered schema, an output schema, and non-destructive annotations, the description and schema together give an agent everything needed to invoke the tool correctly. The key operational fact—that payment methods come from the merchant dashboard—is explicitly stated.

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 the schema already documents every parameter, including the minimum amount and field purposes. The description adds no new parameter-level meaning beyond stating that the invoice is in USD and that payment methods are dashboard-controlled.

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 states a specific verb and resource: 'Create a FinCobra Checkout invoice in USD' and clearly names the return value ('hosted payment URL'). This distinguishes it from sibling tools like get_invoice and list_sources, which are retrieval 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?

The description clearly implies this tool is for creating checkout invoices and explains that payment methods are controlled by the merchant dashboard rather than caller input. It does not explicitly say 'use this instead of get_invoice', but the creation-versus-read distinction makes the intended use clear.

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

get_invoiceGet Checkout invoiceA
Read-onlyIdempotent

Look up a known FinCobra Checkout invoice by id. Returns status, hosted payment URL, and amounts.

NameRequiredDescriptionDefault
invoiceIdYesInvoice id returned by create_invoice.

Output Schema

NameRequiredDescription
idYes
statusYes
amountUsdYes
paymentUrlYes
productNameYes
paymentCoverageYes
merchantReferenceYes
receivedAmountUsdYes
confirmedAmountUsdYes
remainingAmountUsdYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavioral value by specifying the returned data (status, URL, amounts), which is not expressed in the annotations. No contradictions or undisclosed side effects are present.

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 sentence that front-loads the core action ('Look up'), specifies the resource, and lists the key outputs. Every word earns its place, with no redundancy or filler.

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

Completeness5/5

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

This is a simple single-parameter read operation, the annotations fully cover its side-effect profile, an output schema exists to describe return values, and the description states the essential return fields. Nothing material is missing for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100% — the only parameter, invoiceId, is already documented with 'Invoice id returned by create_invoice.' The description adds no additional parameter meaning beyond saying lookup is by id, so the baseline of 3 is appropriate.

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 uses a specific verb ('Look up') and a specific resource ('a known FinCobra Checkout invoice by id'), clearly distinguishing it from sibling tools like create_invoice or list_sources. It also states the key return contents (status, hosted payment URL, amounts), leaving no ambiguity about the tool's function.

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?

The phrase 'a known invoice by id' makes it clear this tool is for retrieving an existing invoice, not for creating or listing. It implies the invoice id comes from a prior create_invoice call, which sets context. However, it does not explicitly name alternatives or exclusion conditions, so it stops short of full guidance.

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

get_net_worthGet Watchlist net worthA
Read-onlyIdempotent

Read Watchlist net worth from existing list APIs. Banks, cash, and property are manual entries. Live crypto USD balances are not on the list API and come back as null.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
notesYes
cashUsdYes
banksUsdYes
cryptoUsdYes
propertyUsdYes
sourceCountsYes
manualTotalUsdYes
unpricedManualAssetCountYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds valuable context beyond those annotations by revealing that banks, cash, and property are manual entries and that live crypto USD balances are null on the list API. This prepares the agent for null values and the nature of the underlying data.

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 two sentences with no filler. The first sentence front-loads the core purpose and data source, and the second provides essential caveats about manual entries and null crypto balances. Every sentence contributes useful information.

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

Completeness5/5

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

With no parameters, a read-only annotation set, and an output schema present, the description is complete for practical use. It explains the two most important behavioral caveats — manual entries and null crypto values — that an agent would need to interpret results correctly.

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?

There are zero parameters, so the schema already fully covers input semantics. The description is not required to add parameter details, and it doesn't attempt to invent any — the baseline of 4 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?

The description states a specific verb ('Read') and resource ('Watchlist net worth'), and clarifies that it aggregates from existing list APIs. This makes the tool's purpose immediately distinguishable from invoice and source siblings like get_invoice and list_sources.

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?

The description implies this is the tool to call when the agent needs a watchlist net worth figure, and it gives caveats about manual entries and crypto nulls. However, it does not explicitly state when to prefer this over alternatives such as list_sources, nor does it state 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_sourceGet Watchlist sourceA
Read-onlyIdempotent

Look up one Watchlist source by the id returned from list_sources.

NameRequiredDescriptionDefault
sourceIdYesSource id from list_sources, such as wallet:12, exchange:binance, or manual:3.

Output Schema

NameRequiredDescription
idYes
kindYes
labelYes
valueYes
currencyYes
providerYes
tokenPnlYes
valueUsdYes
blockchainYes
accountTypeYes
displayAddressYes
mortgageBalanceYes

TDQS

A4.1/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds little behavioral context beyond the id provenance, and it does not contradict the annotations.

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?

One clean sentence with no filler or repeated schema content. The key constraint, that the id comes from list_sources, is front-loaded and immediately actionable.

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

Completeness5/5

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

With a single required parameter, full schema coverage, comprehensive annotations, and an output schema present, nothing essential for calling this tool correctly is missing. The description is fully adequate for the tool's low complexity.

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?

The input schema fully documents sourceId at 100% coverage, including examples like wallet:12, exchange:binance, and manual:3. The description merely restates the provenance relationship already present in the schema, so the baseline 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?

The description says 'Look up one Watchlist source by the id returned from list_sources.' This uses a specific verb, names the resource, and clearly indicates singular lookup behavior, distinguishing it from list_sources without needing to inspect schema.

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?

It explicitly states that the id comes from list_sources, establishing a clear call sequence for the agent. It does not explicitly enumerate exclusions or alternatives, but the 'one ... by id' phrasing sufficiently implies the contrast with listing.

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

list_sourcesList Watchlist sourcesA
Read-onlyIdempotent

List Watchlist wallets, exchanges, and manual bank/cash/property sources. Includes stored token PnL cost-basis rows when the API has them. Does not add wallets or edit assets.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
sourcesYes

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds useful behavioral nuance: the response conditionally includes stored token PnL cost-basis rows when the API has them, and the operation never mutates data. This complements the annotations without contradicting them.

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 crisp sentences lead with the primary action, then add a conditional inclusion detail, then close with a scope boundary. There is no filler and every sentence contributes information an agent needs to invoke the tool correctly.

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

Completeness5/5

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

For a zero-parameter, read-only listing tool with an output schema available, the description covers what is listed, the conditional PnL inclusion, and the non-mutating nature. Nothing essential is missing for an agent to decide on and execute this tool correctly.

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?

The tool accepts no parameters, so the input schema is already complete. Per the baseline for zero-parameter tools, there is nothing further the description needs to compensate for, and it introduces no parameter-related ambiguity.

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 uses a specific verb ('List') and a defined resource ('Watchlist wallets, exchanges, and manual bank/cash/property sources'), which immediately clarifies what is returned. The boundary clause 'Does not add wallets or edit assets' distinguishes the tool from mutation-focused siblings like create_invoice. This makes the tool's scope unmistakable.

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?

The description clearly establishes when to use the tool: to retrieve a read-only list of watchlist sources, including PnL cost-basis rows when available. It also states a when-not boundary: it does not add wallets or edit assets. However, it never names sibling alternatives such as get_source for a single source, so it stops short of full 5 guidance.

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. 5 tool updatesv0.2.0
    • First observedcreate_invoice
    • First observedget_invoice
    • First observedget_net_worth
    • First observedget_source
    • First observedlist_sources

TDQS

A4.3/5.0

Scored across 5 tools

Disambiguation5/5

All five tools have clearly distinct responsibilities: invoice lookup/creation are separate, and net-worth/source actions are separate. get_source and list_sources follow the standard item-vs-collection pattern. There is no meaningful overlap.

Naming Consistency5/5

Names consistently follow a verb_noun pattern: get_invoice, create_invoice, list_sources, get_source, and get_net_worth. The convention is uniform and predictable across both subdomains.

Tool Count5/5

Five tools is a compact, appropriate size for a server covering Checkout invoices and Watchlist reads. Each tool serves a distinct need without redundancy.

Completeness3/5

The invoice side covers create and lookup but not list, cancel, or update operations, and the Watchlist side is read-only with no way to add or edit sources. These are notable lifecycle gaps, though the core read and checkout workflows are present.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables interaction with the Conekta payment API to manage orders, customers, subscriptions, and financial transactions. It provides a comprehensive suite of tools for core payment operations like processing refunds, creating checkouts, and monitoring account balances.
    32
    2
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI coding agents to integrate stablecoin checkout, payment links, payment status checks, webhook verification, and webhook-based entitlement logic into applications.
    -