Skip to main content
Glama
bquigley1

Finix MCP Server

by bquigley1

Finix MCP Server (Unofficial)

An unofficial, local MCP (Model Context Protocol) server that provides simplified access to Finix payment processing functionality.

⚠️ This is an unofficial, community-built MCP server. It is not affiliated with or endorsed by Finix.

Features

  • Documentation Search: Search Finix documentation through an MCP-compatible interface

  • Identity Management: Create and list buyers and sellers with simplified parameters

  • Payment Links: Create payment links with just merchant ID, price, and quantity

  • Streamlined API: All tools use simple parameters for ease of use and reduced token usage

Related MCP server: Global Payments MCP Server

Installation

npm install

Configuration

Set your Finix credentials and environment:

export FINIX_USERNAME="your-username"
export FINIX_PASSWORD="your-password"
export FINIX_ENVIRONMENT="Sandbox"  # or "Live"

Environment options:

  • Sandbox (default) - Uses https://finix.sandbox-payments-api.com

  • Live or Production - Uses https://finix.live-payments-api.com

Usage

Running the Server

Start the MCP server:

npm start

For development with auto-reload:

npm dev

Build TypeScript

npm run build

Integrating with Claude Code

Add this configuration to your Claude Code mcp file:

{
  "mcpServers": {
    "finix-docs": {
      "command": "npx",
      "args": ["tsx", "/path/to/finix-mcp/server.ts"],
      "env": {
        "FINIX_USERNAME": "your-username",
        "FINIX_PASSWORD": "your-password",
        "FINIX_ENVIRONMENT": "Sandbox" //Or 'Live' for Live
      }
    }
  }
}

Available Tools

search_finix_docs

Search the Finix documentation for relevant information.

Parameters:

  • query (string, required): The search query to find relevant Finix documentation

  • limit (number, optional): Maximum number of results to return (default: 10)

  • category (string, optional): Filter by document category ("api", "docs", or "all")

create_buyer

Create a new buyer identity with essential information.

Parameters:

  • email (string, required): The email address of the buyer

  • first_name (string, required): The first name

  • last_name (string, required): The last name

  • phone (string, required): The phone number

Returns: {id: "buyer_id"}

create_seller

Create a new seller identity with comprehensive business information.

Parameters:

  • Multiple required fields including email, business details, and underwriting information

  • See tool schema for complete parameter list

Returns: Full seller object with all details

list_buyers

Fetch a list of buyers with simple filtering.

Parameters:

  • limit (number, optional): Number of buyers to return (1-100)

  • email (string, optional): Filter by email address

Returns: [{id: "buyer_id"}, ...]

list_sellers

Fetch a list of sellers with simple filtering.

Parameters:

  • limit (number, optional): Number of sellers to return (1-100)

  • email (string, optional): Filter by email address

Returns: [{id: "seller_id"}, ...]

Create a payment link for processing payments.

Parameters:

  • merchant_id (string, required): The ID of the merchant

  • price (number, required): The unit price in cents

  • quantity (number, required): The quantity of the product

Returns: {id: "payment_link_id", url: "https://..."}

Development

The server is built with:

  • TypeScript for type safety

  • @modelcontextprotocol/sdk for MCP implementation

  • Native fetch API for HTTP requests

  • StdioServerTransport for communication

License

ISC

Available Tools

6 tools
create_buyerC

This tool creates a new Buyer Identity in Finix.

It takes the following arguments:

  • email (str): The email address of the buyer.

  • first_name (str): The first name.

  • last_name (str): The last name.

  • phone (str): The phone number.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe email address of the buyer
first_nameYesThe first name
last_nameYesThe last name
phoneYesThe phone number

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 full burden but provides minimal behavioral information. It states this is a creation operation but doesn't disclose important traits: whether this requires authentication, what happens on duplicate emails, what the response contains, whether there are rate limits, or what happens after creation. 'Creates' implies mutation but lacks details about permissions, side effects, 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.

Conciseness4/5

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

Appropriately sized with two sentences: purpose statement followed by parameter listing. The structure is front-loaded with the core purpose first. However, the parameter listing is somewhat redundant given identical schema descriptions, and the description could be more efficient by focusing on value-added information.

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?

For a creation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what a 'Buyer Identity' is in the Finix context, what happens after creation, what the tool returns, or any error conditions. With 4 required parameters and mutation behavior, more context about the operation's implications and results is needed for proper agent usage.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters with identical descriptions. The description lists parameters but adds no additional meaning beyond what's in the schema - no format requirements, validation rules, or examples. With complete schema coverage, baseline is 3 even without extra param info in description.

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 'creates a new Buyer Identity in Finix' - a specific verb ('creates') with resource ('Buyer Identity') and system context ('Finix'). It distinguishes from siblings like 'create_seller' (different resource) and 'list_buyers' (different operation). However, it doesn't explicitly differentiate from 'create_payment_link' which creates a different resource type.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description doesn't mention when to create a buyer versus other operations like listing buyers or creating sellers. It provides no context about prerequisites, typical workflows, or scenarios where this tool is appropriate versus other tools in the sibling list.

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

create_sellerB

This tool creates a new Seller Identity in Finix with full underwriting data.

Required arguments:

  • email (str): The email address of the seller.

  • first_name (str): The first name of the primary contact.

  • last_name (str): The last name of the primary contact.

  • business_name (str): The legal business name.

  • business_type (str): The business type (e.g., INDIVIDUAL_SOLE_PROPRIETORSHIP, CORPORATION, etc.).

  • business_description (str): Description of the business for underwriting.

Optional arguments include extensive business and underwriting data fields. See the schema for complete field descriptions.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe email address of the seller
first_nameYesThe first name of the primary contact
last_nameYesThe last name of the primary contact
business_nameYesThe legal business name
business_typeYesThe business type
business_descriptionYesDescription of the business for underwriting
phoneNo
business_phoneNo
business_tax_idNo
tax_idNo
urlNo
personal_addressNo
business_addressNo
doing_business_asNo
default_statement_descriptorNo
titleNo
principal_percentage_ownershipNo
mccNo
ownership_typeNo
dobNo
incorporation_dateNo
annual_card_volumeNo
max_transaction_amountNo
ach_max_transaction_amountNo
has_accepted_credit_cards_previouslyNo
annual_ach_volumeNo
average_ach_transfer_amountNo
average_card_transfer_amountNo
card_volume_distributionNo
volume_distribution_by_business_typeNo
refund_policyNo
merchant_agreement_acceptedNo
merchant_agreement_timestampNo
merchant_agreement_ip_addressNo
merchant_agreement_user_agentNo
credit_check_allowedNo
credit_check_timestampNo
credit_check_ip_addressNo
credit_check_user_agentNo
tagsNo

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'creates' implies a write/mutation operation, the description doesn't address critical behavioral aspects: required permissions, whether this is an irreversible creation, rate limits, error conditions, or what happens on success (e.g., returns a seller ID). For a creation tool with zero annotation coverage, this is a significant gap.

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 efficiently structured with a clear purpose statement upfront, followed by required arguments listing, and a note about optional arguments. Every sentence serves a purpose, though the transition to 'See the schema for complete field descriptions' could be slightly more integrated. Overall, it's appropriately sized for a complex tool.

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

Completeness3/5

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

Given the tool's complexity (40 parameters, no output schema, no annotations), the description is partially complete. It adequately covers the purpose and required parameters but leaves significant gaps: no behavioral context, no output information, minimal guidance on optional parameters, and no usage guidelines. For a creation tool with this complexity, more comprehensive coverage would be expected.

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 description explicitly lists and describes all 6 required parameters, adding clear semantic meaning beyond the schema. With only 15% schema description coverage, the description compensates well for the schema's deficiencies by explaining the core required fields. However, it doesn't provide similar semantic context for the 34 optional parameters, leaving them largely undocumented.

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

Purpose5/5

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

The description clearly states the specific action ('creates a new Seller Identity'), target resource ('in Finix'), and scope ('with full underwriting data'). It distinguishes this from sibling tools like 'create_buyer' by specifying it's for seller identities rather than buyers or other entities.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'create_buyer' or 'list_sellers'. It mentions 'full underwriting data' but doesn't specify prerequisites, dependencies, or when this tool would be inappropriate. The agent receives no contextual usage instructions.

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

list_buyersB

This tool will fetch a list of Buyers from Finix.

It takes two arguments:

  • limit (int, optional): The number of buyers to return.

  • email (str, optional): A case-sensitive filter on the list based on the buyer's email field.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
emailNo

TDQS

B3.2/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 burden of behavioral disclosure. It mentions 'fetch a list' implying a read operation, but doesn't specify if it's paginated, requires authentication, has rate limits, or returns structured data. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior and constraints.

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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by a clear bullet-point list of parameters with type hints and brief explanations. Every sentence earns its place with no redundant information, making it efficient and easy to parse.

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

Completeness3/5

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

Given the tool's moderate complexity (2 optional parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameters but lacks details on return format, error handling, or integration with sibling tools. For a list operation with filtering, more context on result structure or limitations would improve completeness.

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 description adds meaningful context beyond the input schema: it explains that 'email' is a 'case-sensitive filter on the list based on the buyer's email field' and clarifies both parameters are optional. With 0% schema description coverage, this compensates well by providing practical usage information that the schema alone doesn't offer, though it could detail default values or filtering logic more.

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 the tool's purpose: 'fetch a list of Buyers from Finix' with a specific verb ('fetch') and resource ('Buyers'). It distinguishes from siblings like 'create_buyer' (creation vs. listing) and 'list_sellers' (different resource type), though it doesn't explicitly differentiate from 'search_finix_docs' which might overlap in search functionality. The purpose is clear but could be more specific about scope.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer 'list_buyers' over 'search_finix_docs' for buyer-related queries, or how it differs from 'create_buyer' in workflow context. There's no explicit when/when-not advice or prerequisite information, leaving usage decisions ambiguous.

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

list_sellersB

This tool will fetch a list of Sellers from Finix.

It takes two arguments:

  • limit (int, optional): The number of sellers to return.

  • email (str, optional): A case-sensitive filter on the list based on the seller's email field.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
emailNo

TDQS

B3.2/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 burden of behavioral disclosure. It mentions 'fetch a list' which implies a read-only operation, but doesn't specify whether this requires authentication, has rate limits, pagination behavior, error conditions, or what format the returned list takes. For a tool with zero annotation coverage, this leaves significant behavioral aspects undocumented, though it at least correctly indicates it's a retrieval operation rather than a mutation.

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 perfectly concise and well-structured. It opens with the core purpose, then clearly lists parameters with brief explanations. Every sentence serves a purpose with zero redundancy. The two-sentence structure is front-loaded with the main function followed by parameter details - an efficient pattern that wastes no words while covering essential information.

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

Completeness3/5

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

Given 2 parameters with 0% schema coverage and no output schema, the description provides adequate but minimal coverage. It explains what the tool does and what parameters mean, but lacks information about return format, error handling, authentication requirements, and usage context relative to sibling tools. For a simple list operation, this might be sufficient, but the absence of output details and behavioral context leaves gaps that could hinder effective tool selection and invocation.

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?

With 0% schema description coverage, the description compensates well by explaining both parameters: 'limit' as 'The number of sellers to return' and 'email' as 'A case-sensitive filter on the list based on the seller's email field.' This adds meaningful context beyond the bare schema, clarifying the purpose and usage of each optional parameter. The description doesn't provide format examples or edge cases, but gives sufficient semantic understanding for basic use.

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 the tool's purpose: 'fetch a list of Sellers from Finix' - a specific verb ('fetch') and resource ('Sellers from Finix'). It distinguishes from siblings like 'create_seller' (creation vs. listing) and 'list_buyers' (different resource type), though it doesn't explicitly contrast with 'search_finix_docs' which serves a different function. The purpose is unambiguous but could be slightly more specific about what 'Sellers' represent in this context.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when to prefer 'list_sellers' over 'search_finix_docs' for seller-related queries, or how it differs from 'list_buyers' in terms of use cases. There's no discussion of prerequisites, context, or typical scenarios where this tool would be appropriate versus other listing or search operations available in the sibling tools.

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

search_finix_docsB

This tool searches the Finix documentation for relevant information.

It takes the following arguments:

  • query (str): The search query to find relevant Finix documentation.

  • limit (int, optional): Maximum number of results to return (default: 10).

  • category (str, optional): Filter by document category - "api" for API Reference, "docs" for Documentation, or "all" for both (default: "all").

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe search query to find relevant Finix documentation
limitNo
categoryNoall

TDQS

B3.1/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 full burden. It mentions the tool 'searches' but doesn't disclose behavioral traits like authentication needs, rate limits, response format, or error handling. For a search tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.

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 appropriately sized and front-loaded with the core purpose. The parameter explanations are clear and necessary given low schema coverage. It could be slightly more concise by integrating the purpose and parameters more fluidly, but overall it's efficient with minimal waste.

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

Completeness3/5

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

Given no annotations and no output schema, the description covers the basic purpose and parameters well. However, it lacks details on return values, error cases, or operational constraints, which are important for a search tool. It's adequate but has clear gaps in providing a complete context for the agent.

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

Parameters4/5

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

Schema description coverage is low at 33% (only the 'query' parameter has a description in the schema). The description compensates by explaining all three parameters: 'query' as the search term, 'limit' as maximum results with default, and 'category' with enum values and default. This adds meaningful semantics beyond the sparse schema.

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 the tool's purpose as 'searches the Finix documentation for relevant information,' which is a specific verb+resource combination. However, it doesn't distinguish this search tool from potential documentation-related siblings (none exist in the provided sibling list, but the description doesn't address this explicitly).

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for searching documentation, or how it differs from other tools (like general web search tools not in the sibling list). Usage is implied but not explicitly stated.

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. 6 tool updates
    • First observedcreate_buyer
    • First observedcreate_payment_link
    • First observedcreate_seller
    • First observedlist_buyers
    • First observedlist_sellers
    • First observedsearch_finix_docs

TDQS

A3.5/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a clearly distinct purpose with no ambiguity. The tools cover separate operations: creating buyers/sellers, listing buyers/sellers, creating payment links, and searching documentation. There is no overlap in functionality that could cause misselection.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., create_buyer, list_sellers, search_finix_docs). The naming is uniform across all tools, using snake_case and clear action-object pairs without any deviations.

Tool Count5/5

With 6 tools, the count is well-scoped for a Finix server covering identity management and documentation. Each tool earns its place by addressing core operations like CRUD for buyers/sellers and payment links, without being too sparse or bloated.

Completeness4/5

The tool set provides good coverage for identity management (create and list for buyers/sellers) and payment links, with a useful documentation search tool. A minor gap exists in lacking update or delete operations for buyers/sellers, but agents can work around this for basic workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers