Skip to main content
Glama
Manas8114

Kickbacks MCP Server

by Manas8114

Kickbacks.ai MCP Server

PyPI Python License

Earn ad revenue from AI coding agent spinners — MCP server for Kickbacks.ai that exposes tools to check balance, earnings, status, ad history, and enable/disable ads.

What is Kickbacks.ai?

Kickbacks.ai pays developers 50% of ad revenue from ads shown in AI coding agent spinners (Claude Code, Codex). While your agent "thinks", its spinner shows sponsored lines instead of generic verbs like "Discombobulating...".

Platform

Status

VS Code Extension (Claude Code)

✅ Primary

VS Code Extension (Codex)

⚠️ Temp disabled

Terminal CLI (Claude Code 2.1.143+)

✅ Works

Related MCP server: danke-mcp

Quick Start

1. Get API Credentials

Email support@kickbacks.ai for partner API access.

2. Install & Configure

# Install via uvx (recommended)
uvx kickbacks-mcp

# Or install locally
pip install kickbacks-mcp
# or
pip install -e .

3. Set Environment Variables

export KICKBACKS_API_KEY=your_api_key_here
export KICKBACKS_USER_ID=your_user_id_here  # optional

4. Add to Hermes Agent Config

# ~/.hermes/config.yaml
mcp_servers:
  kickbacks:
    command: "uvx"
    args: ["kickbacks-mcp"]
    env:
      KICKBACKS_API_KEY: "your_key"

5. Use in Any MCP-Compatible Agent

# Check balance
> kickbacks_balance

# See earnings breakdown
> kickbacks_earnings

# Check status & caps
> kickbacks_status

# View ad history
> kickbacks_ads_history

# Enable/disable ads
> kickbacks_set_enabled enabled=true

Available Tools

Tool

Description

kickbacks_balance

Current balance (total earnings)

kickbacks_earnings

Breakdown: today/week/month/total

kickbacks_status

Connection state, caps, session stats

kickbacks_ads_history

Impression/click log with pagination

kickbacks_set_enabled

Enable/disable ads

kickbacks_config

Check configuration status

Example Outputs

> kickbacks_earnings
Earnings Breakdown:
  Today: $0.42
  This Week: $7.11
  This Month: $42.50
  Total: $156.78
  Currency: USD

> kickbacks_status
Connected: ✅ | Authenticated: ✅ | Enabled: ✅ | Last sync: 2026-06-13T21:32:31 | Session: 23 impressions, 2 clicks

> kickbacks_ads_history
Ad History (showing 2 of 2):
  👁 [2026-06-13T21:32:31] Ramp - save time and money (spinner) - $0.0010
  👆 [2026-06-13T21:32:31] Bitcoin Devs Takeover Toronto (statusbar) - $0.0500

Configuration

Environment Variables

Variable

Required

Description

KICKBACKS_API_KEY

Yes

API key from Kickbacks.ai

KICKBACKS_USER_ID

No

Your Kickbacks user ID

KICKBACKS_API_BASE

No

Custom API base URL (default: https://api.kickbacks.ai/v1)

Hermes Agent Config

mcp_servers:
  kickbacks:
    command: "uvx"
    args: ["kickbacks-mcp"]
    env:
      KICKBACKS_API_KEY: "ghp_xxx..."
      KICKBACKS_USER_ID: "user_123"
    timeout: 60

Claude Desktop Config

{
  "mcpServers": {
    "kickbacks": {
      "command": "uvx",
      "args": ["kickbacks-mcp"],
      "env": {
        "KICKBACKS_API_KEY": "your_key"
      }
    }
  }
}

Development

Local Development

# Clone
git clone https://github.com/msgok/kickbacks-mcp
cd kickbacks-mcp

# Install in dev mode
pip install -e ".[dev]"

# Run directly
python -m kickbacks_mcp.server

# Run tests
pytest

Project Structure

kickbacks_mcp/
├── __init__.py      # Package init
├── client.py        # Kickbacks API client
├── server.py        # MCP server with tools
├── pyproject.toml   # Project config
└── README.md        # This file

Adding Real API Support

When Kickbacks provides API access:

  1. Edit client.py → replace _mock_response() with real HTTP calls

  2. Update data models if API differs

  3. Test with pytest tests/

Publishing to PyPI

# Build
pip install build
python -m build

# Publish
pip install twine
twine upload dist/*

License

MIT License - see LICENSE for details.

Support


Built for the Hermes Agent ecosystem. Works with any MCP-compatible agent.

Available Tools

6 tools
kickbacks_ads_historyA

Get recent ad impression and click history. Shows each ad shown, campaign name, surface (spinner/statusbar), event type, revenue earned, and whether it was clicked. Supports pagination. Requires KICKBACKS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-100, default 20)
offsetNoNumber of items to skip for pagination (default 0)

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that it requires an API key, supports pagination, and lists return fields (ad, campaign, surface, event type, revenue, clicked). This is good, though it doesn't explicitly state it's read-only or mention error handling.

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

Conciseness5/5

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

Two concise sentences. First explains purpose, second adds surface details, pagination, and API key requirement. No unnecessary words.

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?

Given simple tool (2 params, no output schema, no nested objects), description covers purpose, returned fields, pagination, and API key requirement. No gaps for effective use.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for limit and offset. The description only adds that pagination is supported, which is redundant with schema. No additional parameter meaning beyond what schema provides.

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

Purpose5/5

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

Description clearly states the tool gets recent ad impression and click history, with specific verb and resource. It lists fields returned (ad, campaign, surface, event type, revenue, clicked), distinguishing it from siblings like kickbacks_balance or kickbacks_earnings.

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

Usage Guidelines4/5

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

Description mentions pagination and required API key, implying usage context. It doesn't explicitly state when not to use or alternatives, but siblings are clearly distinct (balance, config, etc.), so usage is contextually clear.

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

kickbacks_balanceA

Get current Kickbacks.ai balance. Shows total earnings available for withdrawal. Requires KICKBACKS_API_KEY environment variable. Contact support@kickbacks.ai for API access.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

Without annotations, the description adequately covers the behavior: it is a read operation that returns the balance. It also discloses the authentication requirement, which is a behavioral trait.

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 concise with three sentences, each adding value: purpose, detail, and support contact. No unnecessary words.

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

Completeness4/5

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

For a tool with no parameters and no output schema, the description covers the main purpose and a prerequisite. It could mention the return format, but it is not critical for a simple balance check.

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 no parameters, and the schema coverage is 100%. The description does not need to add parameter information, but it adds value by noting the environment variable requirement.

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 'Get current Kickbacks.ai balance' and specifies that it shows total earnings available for withdrawal. This distinguishes it from sibling tools like kickbacks_earnings and kickbacks_status.

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 explicitly mentions the prerequisite of the KICKBACKS_API_KEY environment variable and provides contact information for API access, giving clear context for when to use the tool.

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

kickbacks_configA

Check Kickbacks.ai configuration status. Shows whether API key is set and provides setup instructions if not. Safe to call - never exposes secrets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/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 appropriately states that the tool is safe and never exposes secrets, adding useful behavioral context. However, it does not mention potential side effects, rate limits, or other operational details.

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 concise with two sentences: the first states the primary purpose and the second adds a safety note. It is well-structured, front-loaded with key information, and contains no superfluous content.

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

Completeness4/5

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

Given the simple nature of the tool (no parameters, no output schema), the description provides sufficient information about its function and safety. It does not explain how output differs from the sibling tool kickbacks_status, but for a config check, it is largely complete.

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 has zero parameters and the schema description coverage is 100%. The description does not need to add parameter details as there are none. It meets the baseline expectation for parameter-less tools.

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: checking Kickbacks.ai configuration status, including whether the API key is set and providing setup instructions. However, it does not explicitly differentiate from sibling tools like kickbacks_status, though the verb 'Check' and resource 'configuration status' are specific.

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, such as kickbacks_set_enabled for updates or kickbacks_status for overall status. It only mentions safety ('Safe to call') but lacks explicit when-to-use or when-not-to-use context.

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

kickbacks_earningsA

Get Kickbacks.ai earnings breakdown by time period: today, this week, this month, and all-time total. Requires KICKBACKS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions the API key requirement, but does not disclose other behavioral traits like idempotency, rate limits, or error behavior. For a simple read tool, this is adequate but not comprehensive.

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

Conciseness5/5

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

Two sentences, no waste. Front-loaded with the action and result, followed by a prerequisite. Every sentence earns its place.

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?

Given zero parameters and no output schema, the description is complete enough. It specifies exactly what time periods are included in the earnings breakdown, covering the tool's entire functionality.

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 input schema has zero parameters, so schema description coverage is 100%. The description adds value by explaining what the return data includes (breakdown by time period), which is useful beyond the empty schema.

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 tool gets earnings breakdown by time period (today, this week, this month, all-time total), which is a specific verb+resource. It distinguishes itself from sibling tools like kickbacks_ads_history or kickbacks_balance.

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 mentions the required environment variable but provides no explicit guidance on when to use this tool versus siblings. Usage context is implied but not explicitly compared.

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

kickbacks_set_enabledA

Enable or disable Kickbacks.ai ads. When disabled, no ads are shown and no earnings accrue. When enabled, ads appear in supported AI agent spinners and status bars. Requires KICKBACKS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesTrue to enable ads, False to disable

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the immediate behavioral impact (ads shown/not shown, earnings accrue/not) and a prerequisite. Could be improved by noting persistence, but is clear and honest.

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 efficient sentences: first states the purpose, second provides behavioral details and a requirement. No filler or repetition.

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 simple boolean toggle with no output schema, the description covers purpose, behavior, and a crucial environmental prerequisite. It is fully sufficient for correct 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?

Schema coverage is 100% with a basic description. The tool description adds value by explaining the real-world consequences of true and false values (ads appear, earnings accrue) and the required env var, going beyond the schema.

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 the specific verb 'Enable or disable' and identifies the resource 'Kickbacks.ai ads'. It clearly distinguishes from sibling tools like kickbacks_ads_history or kickbacks_balance, which handle different aspects.

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 explains the effects of enabled versus disabled states, providing context for when to use the tool. It mentions the environment variable requirement but does not explicitly contrast with siblings, though siblings are sufficiently distinct.

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

kickbacks_statusA

Get Kickbacks.ai connection status and earning state. Shows whether connected, authenticated, enabled, and if hourly/daily earning caps have been hit. Requires KICKBACKS_API_KEY environment variable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It explains what status fields are returned (connected, authenticated, enabled, caps) and the prerequisite. Lacks mention of rate limits or error behavior but is sufficient for a simple read-only status check.

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

Conciseness5/5

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

Two concise sentences with no redundancy. Front-loaded with purpose and details.

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

Completeness4/5

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

Despite no output schema, description clearly enumerates the status fields. Provides prerequisite. For a zero-parameter tool, this is complete enough.

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?

No parameters exist, so baseline is 4. Description does not need to add param info, and it correctly lists prerequisites instead.

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

Purpose5/5

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

Clearly states the verb 'Get' and the resource 'Kickbacks.ai connection status and earning state'. Lists specific details shown, and distinguishes from sibling tools that deal with history, balance, config, etc.

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?

Mentions the required environment variable but does not explicitly state when to use this tool versus alternatives like kickbacks_balance or kickbacks_config. Usage context is implied but not directly guided.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedkickbacks_ads_history
    • First observedkickbacks_balance
    • First observedkickbacks_config
    • First observedkickbacks_earnings
    • First observedkickbacks_set_enabled
    • First observedkickbacks_status

TDQS

A4.2/5.0
Disambiguation5/5

Every tool has a clearly distinct purpose: history, balance, config, earnings, enable/disable, and status. No ambiguity between them.

Naming Consistency5/5

All tools follow a consistent 'kickbacks_' prefix with a descriptive noun or verb_noun pattern (e.g., ads_history, set_enabled). No mixing of conventions.

Tool Count5/5

With 6 tools, the server is well-scoped for a monetization service. Each tool covers a core aspect (history, balance, earnings, config, enable/disable, status) without bloat.

Completeness4/5

The set covers key operations: viewing earnings/balance/history, checking config and status, and toggling ads. Minor gaps like withdrawal or detailed settings exist but don't hinder basic functionality.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for managing affiliate and referral programs. Track referrals, manage affiliates, process conversions, and handle payouts through AI assistants like Claude, Cursor, and ChatGPT.
    18
    74
    2
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    An MCP server that enables AI agents to send and receive Bitcoin Lightning micropayments as gratitude on the Danke network. It provides tools for agent registration, balance management, leaderboard tracking, and withdrawing sats via BOLT11 invoices.
    6
    16
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    MCP server for Google AdSense management. Create ad units, generate framework-specific ad code, manage earnings reports, and automate ads.txt — all from your AI assistant.
    12
    18
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for MoltAd, enabling AI agents to register, manage ad campaigns, buy credits, and report ad events through the MoltAd API.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Manas8114/kickbacks-mcp'

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