Server definition
- Hash
- sha256:f303f409c4a0f992398ee2e402d09a0a7bf2f7ac8d44ac421c859f48f109ee22
- What it is
- What a remote MCP server returned when asked what it offers: 17 tools
The blob, as servednamed by its sha256
{
"instructions": "BankWeave is a multi-agent cross-bank AML (anti-money-laundering) investigation system built on\nFalkorDB. Several banks pool hashed transaction data into one consortium graph; agents triage\nalerts, open cases, gather evidence and write claims whose confidence is echo-proof (computed\nover DISTINCT evidential origins, not over the number of graph paths that reach them).\n\nGraphs (all read-only here):\n consortium hashed cross-bank view: Account, TRANSFERS, FLOWS, Person/Company (full-text\n name index), Device/IP/Address, Alert, Decision, Case, Claim.\n Account.behavior_vec has a vector index.\n bank_<id> one bank's own view; other banks' accounts are ExternalAccount stubs.\n case_<id> one investigation: Case, Claim, Evidence, Action, SAR, Event, Account.\n typology_kb laundering typology guidance (full-text index over Chunk text).\n\nGood starting points: engine_overview -> list_cases -> get_case -> explain_claim;\nlist_alerts -> triage_alert; account_network -> trace_money_path / find_rings.\nEvery result includes `graph`, `cypher` and `params`: quote the Cypher when you explain a finding.\nNever present a claim as proven unless independent_sources >= 2; paths alone are not proof.\n",
"tools": [
{
"description": "An account's cross-bank neighbourhood in the consortium graph: its scores (pagerank,\n motif score, community, WCC component size, pass-through pairs), shared identity (device,\n IP, address with how widely each is shared), cases and alerts on it, counterparties held at\n OTHER banks (count and volume) and its bounded 1-2 hop neighbourhood with the banks it\n spans. A bank alone only sees its own side of these links. FalkorDB features:\n GRAPH.RO_QUERY, bounded undirected expansion.",
"inputSchema": {
"properties": {
"account_id": {
"title": "Account Id",
"type": "string"
},
"depth": {
"default": 2,
"title": "Depth",
"type": "integer"
}
},
"required": [
"account_id"
],
"title": "account_networkArguments",
"type": "object"
},
"name": "account_network",
"outputSchema": null
},
{
"description": "Weakly connected components of the transfer graph (largest first): size, number of\n banks, a sample of members, plus how many components are tiny 'islands' that triage clears\n instantly. graph: 'consortium', 'bank_<id>' or 'case_<id>'. FalkorDB features: algo.wcc.",
"inputSchema": {
"properties": {
"graph": {
"default": "consortium",
"title": "Graph",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"title": "connected_componentsArguments",
"type": "object"
},
"name": "connected_components",
"outputSchema": null
},
{
"description": "Health and size of the whole system: FalkorDB memory/version, graphs (banks, cases),\n consortium size (accounts, banks, transfers) and the alert queue by status (open / case /\n cleared). Call this first to orient yourself. FalkorDB features: INFO memory, GRAPH.LIST,\n GRAPH.RO_QUERY aggregations.",
"inputSchema": {
"properties": {},
"title": "engine_overviewArguments",
"type": "object"
},
"name": "engine_overview",
"outputSchema": null
},
{
"description": "Why a claim has the confidence it has (GraphEcho echo-proof scoring). Groups supporting\n and challenging evidence by ORIGIN: many paths that lead back to the same origin count once.\n Returns paths vs independent origins, naive (path-counting) vs echo-proof confidence, each\n origin group with its multiplicity and weight, which origin kinds were never explored, and\n the derived-claim / evidence chain with the Cypher each evidence item ran. Pure read: the\n score is recomputed in memory, nothing is written. FalkorDB features: GRAPH.RO_QUERY,\n variable-length DERIVED_FROM traversal.",
"inputSchema": {
"properties": {
"case_id": {
"title": "Case Id",
"type": "string"
},
"claim_id": {
"title": "Claim Id",
"type": "string"
}
},
"required": [
"case_id",
"claim_id"
],
"title": "explain_claimArguments",
"type": "object"
},
"name": "explain_claim",
"outputSchema": null
},
{
"description": "Candidate laundering rings: communities of accounts that trade mostly among themselves,\n found by label propagation on the transfer graph. Cross-bank rings (members at more than\n one bank) come first, since no single bank can see them whole. Pass account_id to return\n only the ring that contains that account. FalkorDB features: algo.labelPropagation.",
"inputSchema": {
"properties": {
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
},
"graph": {
"default": "consortium",
"title": "Graph",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"max_size": {
"default": 60,
"title": "Max Size",
"type": "integer"
},
"min_size": {
"default": 3,
"title": "Min Size",
"type": "integer"
}
},
"title": "find_ringsArguments",
"type": "object"
},
"name": "find_rings",
"outputSchema": null
},
{
"description": "Everything about one case from its own case graph: header, claims (each with naive vs\n echo-proof confidence, paths vs independent_sources, state, supporting/challenging evidence\n ids), evidence (kind, origin, state active/needs_verification/superseded, summary), proposed\n and approved actions with the claims that justify them, and SAR status. case_id like\n 'C-44c08392'. FalkorDB features: one graph per case, GRAPH.RO_QUERY.",
"inputSchema": {
"properties": {
"case_id": {
"title": "Case Id",
"type": "string"
},
"max_evidence": {
"default": 40,
"title": "Max Evidence",
"type": "integer"
}
},
"required": [
"case_id"
],
"title": "get_caseArguments",
"type": "object"
},
"name": "get_case",
"outputSchema": null
},
{
"description": "Schema of one graph: node labels, relationship types, property keys and indexes with\n their kind (RANGE, FULLTEXT, VECTOR). graph: 'consortium', 'bank_<id>', 'case_<id>' or\n 'typology_kb'. FalkorDB features: db.labels, db.relationshipTypes, db.propertyKeys,\n db.indexes.",
"inputSchema": {
"properties": {
"graph": {
"default": "consortium",
"title": "Graph",
"type": "string"
}
},
"title": "graph_schemaArguments",
"type": "object"
},
"name": "graph_schema",
"outputSchema": null
},
{
"description": "The alert queue with counts by status. status: 'open', 'case' (escalated into a case)\n or 'cleared'; omit for all. Each alert has its rule, reason, account, bank, case id and the\n recorded clearing reason. Use an alert id with triage_alert. FalkorDB features: range\n indexes on Alert.status, GRAPH.RO_QUERY.",
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"title": "Limit",
"type": "integer"
},
"status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Status"
}
},
"title": "list_alertsArguments",
"type": "object"
},
"name": "list_alerts",
"outputSchema": null
},
{
"description": "List investigation cases (newest first) with status, title, seed account, number of\n alerts/accounts, the banks involved and whether its case graph is loaded. Use a case id\n with get_case. FalkorDB features: GRAPH.RO_QUERY over the consortium graph.",
"inputSchema": {
"properties": {
"limit": {
"default": 30,
"title": "Limit",
"type": "integer"
}
},
"title": "list_casesArguments",
"type": "object"
},
"name": "list_cases",
"outputSchema": null
},
{
"description": "List every FalkorDB graph BankWeave keeps, grouped by kind: the consortium (cross-bank,\n hashed), one graph per bank (that bank's partial view), one graph per case, the typology\n knowledge base. Use graph_schema(graph) for labels, relationship types and indexes.",
"inputSchema": {
"properties": {},
"title": "list_graphsArguments",
"type": "object"
},
"name": "list_graphs",
"outputSchema": null
},
{
"description": "Last resort: run your own read-only Cypher on one graph. Runs as GRAPH.RO_QUERY (the\n engine rejects writes) after a guard: one statement, no CREATE/MERGE/SET/DELETE/REMOVE/\n DROP/FOREACH/LOAD CSV, CALL only for algo.* and the db.* read/index-query procedures,\n LIMIT appended when missing, at most 200 rows, 10 s timeout. graph: 'consortium',\n 'bank_<id>', 'case_<id>' or 'typology_kb' (see graph_schema for labels and properties).",
"inputSchema": {
"properties": {
"cypher": {
"title": "Cypher",
"type": "string"
},
"graph": {
"default": "consortium",
"title": "Graph",
"type": "string"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
}
},
"required": [
"cypher"
],
"title": "run_readonly_cypherArguments",
"type": "object"
},
"name": "run_readonly_cypher",
"outputSchema": null
},
{
"description": "Fuzzy name search over customers (Person) or businesses (Company) across all banks,\n with the accounts and banks each one owns. Tokens are OR-ed, so partial names work.\n FalkorDB features: full-text index, db.idx.fulltext.queryNodes.",
"inputSchema": {
"properties": {
"k": {
"default": 10,
"title": "K",
"type": "integer"
},
"label": {
"default": "Person",
"title": "Label",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"name"
],
"title": "search_customersArguments",
"type": "object"
},
"name": "search_customers",
"outputSchema": null
},
{
"description": "Accounts whose behaviour (activity, amounts, timing, degree profile) is closest to this\n one, by cosine distance over Account.behavior_vec (lower = more alike), with their banks.\n Useful to find mule accounts that act like a known one at other banks. FalkorDB features:\n HNSW vector index, db.idx.vector.queryNodes.",
"inputSchema": {
"properties": {
"account_id": {
"title": "Account Id",
"type": "string"
},
"k": {
"default": 5,
"title": "K",
"type": "integer"
}
},
"required": [
"account_id"
],
"title": "similar_accountsArguments",
"type": "object"
},
"name": "similar_accounts",
"outputSchema": null
},
{
"description": "Accounts where money pools: PageRank over TRANSFERS, highest first, with bank ids.\n graph: 'consortium', 'bank_<id>' or 'case_<id>'. FalkorDB features: algo.pageRank.",
"inputSchema": {
"properties": {
"graph": {
"default": "consortium",
"title": "Graph",
"type": "string"
},
"top_k": {
"default": 10,
"title": "Top K",
"type": "integer"
}
},
"title": "top_hubsArguments",
"type": "object"
},
"name": "top_hubs",
"outputSchema": null
},
{
"description": "Shortest money paths from one account to another, hop by hop with transaction ids,\n amounts and the bank of every account on the path, so you can see the money cross banks.\n Without case_id it searches the consortium along outgoing transfers; with case_id it searches\n that case graph in both directions. No path = no claim. FalkorDB features: algo.SPpaths.",
"inputSchema": {
"properties": {
"case_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Case Id"
},
"dst": {
"title": "Dst",
"type": "string"
},
"max_len": {
"default": 6,
"title": "Max Len",
"type": "integer"
},
"path_count": {
"default": 3,
"title": "Path Count",
"type": "integer"
},
"src": {
"title": "Src",
"type": "string"
}
},
"required": [
"src",
"dst"
],
"title": "trace_money_pathArguments",
"type": "object"
},
"name": "trace_money_path",
"outputSchema": null
},
{
"description": "Why an alert was cleared or escalated into a case. Returns the alert, the triage\n decision and its reason, the graph signals the triage agent recorded (component size,\n motif score, cross-bank counterparties, typologies, shared identity, prior cases), and a\n LIVE re-check: the account's weakly connected component size (islands smaller than the\n configured threshold clear instantly) and its motif score components. FalkorDB features:\n algo.wcc, GRAPH.RO_QUERY.",
"inputSchema": {
"properties": {
"alert_id": {
"title": "Alert Id",
"type": "string"
}
},
"required": [
"alert_id"
],
"title": "triage_alertArguments",
"type": "object"
},
"name": "triage_alert",
"outputSchema": null
},
{
"description": "Laundering typology guidance (e.g. 'fan-out then fan-in through mules', 'structuring\n below reporting threshold') from BankWeave's typology knowledge graph, with citations.\n Abstains when nothing matches well. FalkorDB features: full-text index on the\n typology_kb graph.",
"inputSchema": {
"properties": {
"question": {
"title": "Question",
"type": "string"
}
},
"required": [
"question"
],
"title": "typology_guidanceArguments",
"type": "object"
},
"name": "typology_guidance",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f303f409c4a0f992398ee2e402d09a0a7bf2f7ac8d44ac421c859f48f109ee22 | sha256sum