PubFi MCP

Use MCP 2026-07-28 discovery or 2025-11-25 initialize to list and execute PubFi routes.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
90%
Naming quality
45%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (5)

  • LOWTool 'pubfi.capabilities.list' doesn't follow camelCase/snake_casein pubfi.capabilities.list
  • LOWTool 'pubfi.capabilities.get' doesn't follow camelCase/snake_casein pubfi.capabilities.get
  • LOWTool 'pubfi.route.execute' doesn't follow camelCase/snake_casein pubfi.route.execute
  • LOWTool 'pubfi.substrate.runtime_upgrade.verify' doesn't follow camelCase/snake_casein pubfi.substrate.runtime_upgrade.verify
  • LOWTool 'pubfi.substrate.runtime_upgrade.verify' name length outside 3-30 rangein pubfi.substrate.runtime_upgrade.verify

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,318Tokens (tool definitions)
~9.1 KBTypical response size
Significant attention impact (2.59% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://mcp.pubfi.ai"
    }
  }
}

Remote endpoints

https://mcp.pubfi.aistreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢pubfi.capabilities.list(limit, cursor, provider_key, method)

Enumerate the complete installed Registry v2 catalog as deterministic compact pages. The server does not rank, infer intent, or choose a capability.

Input Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000,
      "default": 50,
      "description": "Maximum compact capability summaries to return."
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "Opaque generation-bound cursor returned by the preceding page."
    },
    "provider_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[a-z0-9](?:[a-z0-9]|-(?!-))*[a-z0-9]$|^[a-z0-9]$",
      "description": "Optional exact public provider key. This is a static filter, not semantic search."
    },
    "method": {
      "type": "string",
      "enum": [
        "GET",
        "POST"
      ]
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "schema_version": {
      "const": "pubfi.gateway.registry.capability-page.v5"
    },
    "generation": {
      "type": "object"
    },
    "manifest": {
      "type": "object"
    },
    "compiled_at": {
      "type": "string"
    },
    "observed_at": {
      "type": "string"
    },
    "total_capability_count": {
      "type": "integer",
      "minimum": 0
    },
    "matching_capability_count": {
      "type": "integer",
      "minimum": 0
    },
    "filters": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "provider_key": {
          "type": "string"
        },
        "method": {
          "type": "string",
          "enum": [
            "GET",
            "POST"
          ]
        }
      }
    },
    "capabilities": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "capability_id",
          "provider_key",
          "provider_name",
          "matcher",
          "methods",
          "credential_required",
          "operations",
          "readiness"
        ],
        "additionalProperties": false,
        "properties": {
          "capability_id": {
            "type": "string"
          },
          "provider_key": {
            "type": "string"
          },
          "provider_name": {
            "type": "string"
          },
          "matcher": {
            "type": "object"
          },
          "methods": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "GET",
                "POST"
              ]
            }
          },
          "credential_required": {
            "type": "boolean"
          },
          "free_rate_limit": {
            "type": [
              "object",
              "null"
            ],
            "required": [
              "requests_per_window",
              "window_seconds",
              "max_concurrency",
              "permit_ttl_seconds"
            ],
            "additionalProperties": false,
            "properties": {
              "requests_per_window": {
                "type": "integer",
                "minimum": 1,
                "maximum": 10000
              },
              "window_seconds": {
                "type": "integer",
                "minimum": 1,
                "maximum": 86400
              },
              "max_concurrency": {
                "type": "integer",
                "minimum": 1,
                "maximum": 256
              },
              "permit_ttl_seconds": {
                "type": "integer",
                "minimum": 1,
                "maximum": 3600
              },
              "quota": {
                "type": "object",
                "required": [
                  "requests_per_window",
                  "window_seconds"
                ],
                "additionalProperties": false,
                "properties": {
                  "requests_per_window": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 9223372036854776000
                  },
                  "window_seconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 86400
                  }
                }
              },
              "total_request_limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9223372036854776000
              },
              "bucket_scope": {
                "type": "string",
                "enum": [
                  "policy_source",
                  "provider"
                ]
              }
            }
          },
          "operations": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "object",
              "required": [
                "method",
                "billing"
              ],
              "additionalProperties": false,
              "properties": {
                "method": {
                  "type": "string",
                  "enum": [
                    "GET",
                    "POST"
                  ]
                },
                "billing": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "mode"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "const": "pricing_unavailable"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "mode"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "const": "free_health"
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "mode",
                        "price_policy_key",
                        "price_version",
                        "credit_cost",
                        "x402"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "mode": {
                          "const": "quantro_priced"
                        },
                        "price_policy_key": {
                          "type": "string",
                          "minLength": 1
                        },
                        "price_version": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "credit_cost": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "x402": {
                          "type": "object",
                          "required": [
                            "network",
                            "asset",
                            "atomic_amount",
                            "offer_id"
                          ],
                          "additionalProperties": false,
                          "properties": {
                            "network": {
                              "type": "string"
                            },
                            "asset": {
                              "type": "string"
                            },
                            "atomic_amount": {
                              "type": "string"
                            },
                            "offer_id": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "readiness": {
            "type": "object"
          }
        }
      }
    },
    "next_cursor": {
      "type": "string"
    }
  },
  "required": [
    "schema_version",
    "generation",
    "manifest",
    "compiled_at",
    "observed_at",
    "total_capability_count",
    "matching_capability_count",
    "filters",
    "capabilities"
  ],
  "additionalProperties": false
}
🟢pubfi.capabilities.get(capability_id)

Return the full typed request, response, metering, and readiness contract for one exact capability id from the installed Registry generation.

Input Schema

{
  "type": "object",
  "properties": {
    "capability_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128,
      "pattern": "^[a-z0-9][a-z0-9._:-]{0,127}$",
      "description": "Exact capability id returned by pubfi.capabilities.list."
    }
  },
  "required": [
    "capability_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "schema_version": {
      "const": "pubfi.gateway.registry.capability-detail.v5"
    },
    "generation": {
      "type": "object"
    },
    "manifest": {
      "type": "object"
    },
    "compiled_at": {
      "type": "string"
    },
    "observed_at": {
      "type": "string"
    },
    "capability": {
      "type": "object",
      "required": [
        "capability_id",
        "route",
        "provider",
        "provider_key",
        "provider_name",
        "upstream",
        "matcher",
        "methods",
        "request",
        "response",
        "credential_required",
        "operations",
        "readiness"
      ],
      "additionalProperties": false,
      "properties": {
        "capability_id": {
          "type": "string"
        },
        "route": {
          "type": "object"
        },
        "provider": {
          "type": "object"
        },
        "provider_key": {
          "type": "string"
        },
        "provider_name": {
          "type": "string"
        },
        "upstream": {
          "type": "object"
        },
        "matcher": {
          "type": "object"
        },
        "methods": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "GET",
              "POST"
            ]
          }
        },
        "request": {
          "type": "object"
        },
        "response": {
          "type": "object"
        },
        "credential_required": {
          "type": "boolean"
        },
        "free_rate_limit": {
          "type": [
            "object",
            "null"
          ],
          "required": [
            "requests_per_window",
            "window_seconds",
            "max_concurrency",
            "permit_ttl_seconds"
          ],
          "additionalProperties": false,
          "properties": {
            "requests_per_window": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10000
            },
            "window_seconds": {
              "type": "integer",
              "minimum": 1,
              "maximum": 86400
            },
            "max_concurrency": {
              "type": "integer",
              "minimum": 1,
              "maximum": 256
            },
            "permit_ttl_seconds": {
              "type": "integer",
              "minimum": 1,
              "maximum": 3600
            },
            "quota": {
              "type": "object",
              "required": [
                "requests_per_window",
                "window_seconds"
              ],
              "additionalProperties": false,
              "properties": {
                "requests_per_window": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 9223372036854776000
                },
                "window_seconds": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 86400
                }
              }
            },
            "total_request_limit": {
              "type": "integer",
              "minimum": 1,
              "maximum": 9223372036854776000
            },
            "bucket_scope": {
              "type": "string",
              "enum": [
                "policy_source",
                "provider"
              ]
            }
          }
        },
        "operations": {
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "required": [
              "method",
              "billing"
            ],
            "additionalProperties": false,
            "properties": {
              "method": {
                "type": "string",
                "enum": [
                  "GET",
                  "POST"
                ]
              },
              "billing": {
                "oneOf": [
                  {
                    "type": "object",
                    "required": [
                      "mode"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "const": "pricing_unavailable"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "mode"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "const": "free_health"
                      }
                    }
                  },
                  {
                    "type": "object",
                    "required": [
                      "mode",
                      "price_policy_key",
                      "price_version",
                      "credit_cost",
                      "x402"
                    ],
                    "additionalProperties": false,
                    "properties": {
                      "mode": {
                        "const": "quantro_priced"
                      },
                      "price_policy_key": {
                        "type": "string",
                        "minLength": 1
                      },
                      "price_version": {
                        "type": "integer",
                        "minimum": 1
                      },
                      "credit_cost": {
                        "type": "integer",
                        "minimum": 1
                      },
                      "x402": {
                        "type": "object",
                        "required": [
                          "network",
                          "asset",
                          "atomic_amount",
                          "offer_id"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "network": {
                            "type": "string"
                          },
                          "asset": {
                            "type": "string"
                          },
                          "atomic_amount": {
                            "type": "string"
                          },
                          "offer_id": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "readiness": {
          "type": "object"
        }
      }
    }
  },
  "required": [
    "schema_version",
    "generation",
    "manifest",
    "compiled_at",
    "observed_at",
    "capability"
  ],
  "additionalProperties": false
}
🔴pubfi.route.execute(raw_path, method, query, body, idempotency_key, ...)

Execute one exact GET or POST path through the authenticated PubFi account lane and the same Registry v2 matcher and typed executor as the HTTP gateway. Append :free only when the capability catalog publishes that exact account-scoped free variant.

Input Schema

{
  "type": "object",
  "properties": {
    "raw_path": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2048,
      "pattern": "^/(?!\\.{1,2}(?:/|$))[A-Za-z0-9._~-]{1,128}(?:/(?!\\.{1,2}(?:/|$))[A-Za-z0-9._~-]{1,128}){0,63}$",
      "description": "Exact original URI path consumed by the Registry matcher. Segments use canonical unreserved ASCII only; percent escapes, dot segments, query, fragment, and backslash are forbidden."
    },
    "method": {
      "type": "string",
      "enum": [
        "GET",
        "POST"
      ]
    },
    "query": {
      "type": "string",
      "maxLength": 65536,
      "pattern": "^(?!\\?)[\\x20-\\x7E]*$",
      "description": "Exact ASCII raw query string without a leading question mark."
    },
    "body": {
      "type": "string",
      "maxLength": 1048576,
      "pattern": "^[\\x20-\\x7E]*$",
      "description": "Exact optional ASCII request-body bytes. For JSON routes, supply one compact serialized JSON document rather than a nested MCP argument value."
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "^[\\x20-\\x7E]+$"
    },
    "request_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "^[\\x20-\\x7E]+$"
    }
  },
  "required": [
    "raw_path",
    "method"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "oneOf": [
    {
      "type": "object",
      "required": [
        "ok",
        "execution_status",
        "execution_authority",
        "billing",
        "generation",
        "route",
        "provider",
        "upstream",
        "upstream_response"
      ],
      "additionalProperties": false,
      "properties": {
        "ok": {
          "const": true
        },
        "execution_status": {
          "const": "free_health_executed"
        },
        "execution_authority": {
          "const": "typed_gateway_registry_v2"
        },
        "billing": {
          "type": "object",
          "required": [
            "mode"
          ],
          "additionalProperties": false,
          "properties": {
            "mode": {
              "const": "free_health"
            }
          }
        },
        "generation": {
          "type": "object"
        },
        "route": {
          "type": "object"
        },
        "provider": {
          "type": "object"
        },
        "upstream": {
          "type": "object"
        },
        "upstream_response": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "execution_status",
        "execution_authority",
        "generation",
        "route",
        "provider",
        "upstream",
        "credits_charged",
        "upstream_response"
      ],
      "additionalProperties": false,
      "properties": {
        "ok": {
          "const": true
        },
        "execution_status": {
          "const": "registry_free_route_executed"
        },
        "execution_authority": {
          "const": "typed_gateway_registry_v2"
        },
        "generation": {
          "type": "object"
        },
        "route": {
          "type": "object"
        },
        "provider": {
          "type": "object"
        },
        "upstream": {
          "type": "object"
        },
        "credits_charged": {
          "const": 0
        },
        "upstream_response": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "ok",
        "execution_status",
        "execution_authority",
        "generation",
        "route",
        "provider",
        "upstream",
        "credits_charged",
        "upstream_response"
      ],
      "additionalProperties": false,
      "properties": {
        "ok": {
          "const": true
        },
        "execution_status": {
          "const": "registry_route_executed"
        },
        "execution_authority": {
          "const": "typed_gateway_registry_v2"
        },
        "generation": {
          "type": "object"
        },
        "route": {
          "type": "object"
        },
        "provider": {
          "type": "object"
        },
        "upstream": {
          "type": "object"
        },
        "credits_charged": {
          "type": "integer",
          "minimum": 1
        },
        "upstream_response": {
          "type": "object"
        }
      }
    }
  ]
}
🔴pubfi.substrate.runtime_upgrade.verify(network, extrinsic_index, extrinsic_hash, expected_authorized_code_hash, idempotency_key, ...)

Verify one reviewed Substrate System.apply_authorized_upgrade extrinsic through the authenticated account lane. Supply the expected Blake2b-256 hash of the FRAME System AuthorizedUpgrade code payload, not the active :code hash at the apply block. The server streams and discards provider runtime code, persists only a compact proof, and returns independent comparison evidence.

Input Schema

{
  "type": "object",
  "properties": {
    "network": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[a-z0-9](?:[a-z0-9_-]{0,62}[a-z0-9])?$"
    },
    "extrinsic_index": {
      "type": "string",
      "minLength": 3,
      "maxLength": 64,
      "pattern": "^(?:0|[1-9][0-9]*)-(?:0|[1-9][0-9]*)$"
    },
    "extrinsic_hash": {
      "type": "string",
      "minLength": 66,
      "maxLength": 66,
      "pattern": "^0x[0-9a-f]{64}$",
      "description": "Canonical lowercase 0x-prefixed 32-byte hash."
    },
    "expected_authorized_code_hash": {
      "type": "string",
      "minLength": 66,
      "maxLength": 66,
      "pattern": "^0x[0-9a-f]{64}$",
      "description": "Canonical lowercase 0x-prefixed 32-byte hash."
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "^[\\x20-\\x7E]+$"
    },
    "request_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "^[\\x20-\\x7E]+$"
    }
  },
  "required": [
    "network",
    "expected_authorized_code_hash"
  ],
  "oneOf": [
    {
      "required": [
        "extrinsic_index"
      ],
      "not": {
        "required": [
          "extrinsic_hash"
        ]
      }
    },
    {
      "required": [
        "extrinsic_hash"
      ],
      "not": {
        "required": [
          "extrinsic_index"
        ]
      }
    }
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "ok": {
      "const": true
    },
    "execution_status": {
      "const": "runtime_upgrade_verification_completed"
    },
    "execution_authority": {
      "const": "typed_gateway_registry_v2"
    },
    "generation": {
      "type": "object"
    },
    "route": {
      "type": "object"
    },
    "provider": {
      "type": "object"
    },
    "upstream": {
      "type": "object"
    },
    "meter_key": {
      "type": "string"
    },
    "reserved_units": {
      "type": "integer",
      "minimum": 1
    },
    "credits_charged": {
      "type": "integer",
      "minimum": 1
    },
    "runtime_code_bytes": {
      "type": "integer",
      "minimum": 1
    },
    "computed_code_hash": {
      "type": "string",
      "minLength": 66,
      "maxLength": 66,
      "pattern": "^0x[0-9a-f]{64}$",
      "description": "Canonical lowercase 0x-prefixed 32-byte hash."
    },
    "expected_authorized_code_hash": {
      "type": "string",
      "minLength": 66,
      "maxLength": 66,
      "pattern": "^0x[0-9a-f]{64}$",
      "description": "Canonical lowercase 0x-prefixed 32-byte hash."
    },
    "matches": {
      "type": "boolean"
    },
    "extrinsic_success": {
      "type": "boolean"
    },
    "extrinsic_index": {
      "type": "string",
      "pattern": "^(?:0|[1-9][0-9]*)-(?:0|[1-9][0-9]*)$"
    },
    "extrinsic_hash": {
      "type": "string",
      "minLength": 66,
      "maxLength": 66,
      "pattern": "^0x[0-9a-f]{64}$",
      "description": "Canonical lowercase 0x-prefixed 32-byte hash."
    },
    "provider_response_bytes": {
      "type": "integer",
      "minimum": 1,
      "maximum": 67108864
    },
    "provider_response_sha256": {
      "type": "string",
      "pattern": "^sha256:[0-9a-f]{64}$"
    },
    "upstream_status": {
      "const": 200
    },
    "upstream_latency_ms": {
      "type": "integer",
      "minimum": 0
    }
  },
  "required": [
    "ok",
    "execution_status",
    "execution_authority",
    "generation",
    "route",
    "provider",
    "upstream",
    "meter_key",
    "reserved_units",
    "credits_charged",
    "runtime_code_bytes",
    "computed_code_hash",
    "expected_authorized_code_hash",
    "matches",
    "extrinsic_success",
    "extrinsic_index",
    "extrinsic_hash",
    "provider_response_bytes",
    "provider_response_sha256",
    "upstream_status",
    "upstream_latency_ms"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools
verifiedversion not recorded4 tools