MCP & Agent-to-Agent
McpClient exposes Relata as a governed MCP tool source: list_tools + call_tool, plus 72 typed tool wrappers. A2AClient is the agent-to-agent door: discover the agent card, submit tasks, persist checkpoints across runs.
71 methods across this domain. Signatures, parameters (incl. keyword-only tunable defaults), and the three SDK spellings are ported from the live SDK source; flagship methods carry a hand-written When to use + example.
McpClient
call_tool(name, arguments=None)
When to use. Invoke any of Relata's governed MCP tools by name with a JSON arg map.
- Python —
client.mcpclient.call_tool(name, arguments=None) - TypeScript —
callTool(name, args) - Go —
CallTool(name, arguments)
Parameters: name, arguments=None
Example
mcp = McpClient.from_client(relata)
print(mcp.call_tool("memory_search", {"query": "alice", "top_k": 3}))add_case_note(case_id, note, author=None)
add_case_note(case_id, note, author=None)`
- Python —
client.mcpclient.add_case_note(case_id, note, author=None) - TypeScript —
addCaseNote(caseId, note, opts) - Go —
AddCaseNote(caseID, note)
Parameters: case_id, note, author=None
aggregate_stats(entity_type, agg='COUNT', column='*', purpose='analytics')
aggregate_stats(entity_type, agg='COUNT', column='*', purpose='analytics')`
- Python —
client.mcpclient.aggregate_stats(entity_type, agg='COUNT', column='*', purpose='analytics') - TypeScript —
aggregateStats(entityType, opts) - Go —
AggregateStats(entityType)
Parameters: entity_type, agg='COUNT', column='*', purpose='analytics'
associate(from_id, to_id, relation='related_to', purpose=None)
associate(from_id, to_id, relation='related_to', purpose=None)`
- Python —
client.mcpclient.associate(from_id, to_id, relation='related_to', purpose=None) - TypeScript —
associate(fromId, toId, opts) - Go —
Associate(fromID, toID)
Parameters: from_id, to_id, relation='related_to', purpose=None
beneficial_ownership(party, max_depth=6, purpose='analytics')
beneficial_ownership(party, max_depth=6, purpose='analytics')`
- Python —
client.mcpclient.beneficial_ownership(party, max_depth=6, purpose='analytics') - TypeScript —
beneficialOwnership(party, opts) - Go —
BeneficialOwnership(party)
Parameters: party, max_depth=6, purpose='analytics'
consolidate(memory_id, content, confidence=1.0, purpose=None)
consolidate(memory_id, content, confidence=1.0, purpose=None)`
- Python —
client.mcpclient.consolidate(memory_id, content, confidence=1.0, purpose=None) - TypeScript —
consolidate(memoryId, content, opts) - Go —
Consolidate(memoryID, content)
Parameters: memory_id, content, confidence=1.0, purpose=None
create_rule(name, condition_sql, severity=None, description=None, purpose='security')
create_rule(name, condition_sql, severity=None, description=None, purpose='security')`
- Python —
client.mcpclient.create_rule(name, condition_sql, severity=None, description=None, purpose='security') - TypeScript —
createRule(name, conditionSql, opts) - Go —
CreateRule(name, conditionSQL)
Parameters: name, condition_sql, severity=None, description=None, purpose='security'
detect_communities(entity_type, algo='louvain', purpose='analytics')
detect_communities(entity_type, algo='louvain', purpose='analytics')`
- Python —
client.mcpclient.detect_communities(entity_type, algo='louvain', purpose='analytics') - TypeScript —
detectCommunities(entityType, opts) - Go —
DetectCommunities(entityType)
Parameters: entity_type, algo='louvain', purpose='analytics'
episodes_in(session_id, limit=20, purpose=None)
episodes_in(session_id, limit=20, purpose=None)`
- Python —
client.mcpclient.episodes_in(session_id, limit=20, purpose=None) - TypeScript —
episodesIn(sessionId, opts) - Go —
EpisodesIn(sessionID)
Parameters: session_id, limit=20, purpose=None
erase_subject(subject, reason='gdpr-art17-request')
erase_subject(subject, reason='gdpr-art17-request')`
- Python —
client.mcpclient.erase_subject(subject, reason='gdpr-art17-request') - TypeScript —
eraseSubject(subject, opts) - Go —
EraseSubject(subject)
Parameters: subject, reason='gdpr-art17-request'
explain_policy(sql, purpose)
explain_policy(sql, purpose)`
- Python —
client.mcpclient.explain_policy(sql, purpose) - TypeScript —
explainPolicy(sql, purpose) - Go —
ExplainPolicy(sql, purpose)
Parameters: sql, purpose
face_match(probe_id, threshold=0.8, top_k=10, purpose='security_incident')
face_match(probe_id, threshold=0.8, top_k=10, purpose='security_incident')`
- Python —
client.mcpclient.face_match(probe_id, threshold=0.8, top_k=10, purpose='security_incident') - TypeScript —
faceMatch(probeId, opts) - Go —
FaceMatch(probeID)
Parameters: probe_id, threshold=0.8, top_k=10, purpose='security_incident'
find_connections(entity, purpose, limit=50)
find_connections(entity, purpose, limit=50)`
- Python —
client.mcpclient.find_connections(entity, purpose, limit=50) - TypeScript —
findConnections(entity, purpose, opts) - Go —
FindConnections(entity, purpose)
Parameters: entity, purpose, limit=50
find_in_social_corpus(object_type, text_query=None, user=None, top_k=20)
find_in_social_corpus(object_type, text_query=None, user=None, top_k=20)`
- Python —
client.mcpclient.find_in_social_corpus(object_type, text_query=None, user=None, top_k=20) - TypeScript —
findInSocialCorpus(query, opts) - Go —
FindInSocialCorpus(query)
Parameters: object_type, text_query=None, user=None, top_k=20
find_scc(entity_type, purpose='analytics')
find_scc(entity_type, purpose='analytics')`
- Python —
client.mcpclient.find_scc(entity_type, purpose='analytics') - TypeScript —
findScc(entityType, opts) - Go —
FindScc(entityType, purpose)
Parameters: entity_type, purpose='analytics'
find_threats(entity_type, purpose='security_incident')
find_threats(entity_type, purpose='security_incident')`
- Python —
client.mcpclient.find_threats(entity_type, purpose='security_incident') - TypeScript —
findThreats(entityType, opts) - Go —
FindThreats(entityType, purpose)
Parameters: entity_type, purpose='security_incident'
forget(memory_id, retain_days=0, purpose=None)
forget(memory_id, retain_days=0, purpose=None)`
- Python —
client.mcpclient.forget(memory_id, retain_days=0, purpose=None) - TypeScript —
forget(memoryId, opts) - Go —
Forget(memoryID)
Parameters: memory_id, retain_days=0, purpose=None
geofence(lat, lon, radius_m=1000, target_type='MovementEvent', purpose='analytics')
geofence(lat, lon, radius_m=1000, target_type='MovementEvent', purpose='analytics')`
- Python —
client.mcpclient.geofence(lat, lon, radius_m=1000, target_type='MovementEvent', purpose='analytics') - TypeScript —
geofence(lat, lon, opts) - Go —
Geofence(lat, lon)
Parameters: lat, lon, radius_m=1000, target_type='MovementEvent', purpose='analytics'
get_audit_trail(purpose=None, principal_filter=None, limit=100)
get_audit_trail(purpose=None, principal_filter=None, limit=100)`
- Python —
client.mcpclient.get_audit_trail(purpose=None, principal_filter=None, limit=100) - TypeScript —
getAuditTrail(opts) - Go —
GetAuditTrail()
Parameters: purpose=None, principal_filter=None, limit=100
get_case_summary(case_id, purpose)
get_case_summary(case_id, purpose)`
- Python —
client.mcpclient.get_case_summary(case_id, purpose) - TypeScript —
getCaseSummary(caseId, purpose) - Go —
GetCaseSummary(caseID, purpose)
Parameters: case_id, purpose
get_domain_summary(domain)
get_domain_summary(domain)`
- Python —
client.mcpclient.get_domain_summary(domain) - TypeScript —
getDomainSummary(opts) - Go —
GetDomainSummary(domain)
Parameters: domain
get_entities(object_type, filters=None, limit=50)
get_entities(object_type, filters=None, limit=50)`
- Python —
client.mcpclient.get_entities(object_type, filters=None, limit=50) - TypeScript —
getEntities(objectType, opts) - Go —
GetEntities(objectType)
Parameters: object_type, filters=None, limit=50
get_entity_profile(entity_id, purpose)
get_entity_profile(entity_id, purpose)`
- Python —
client.mcpclient.get_entity_profile(entity_id, purpose) - TypeScript —
getEntityProfile(entityId, purpose) - Go —
GetEntityProfile(entityID, purpose)
Parameters: entity_id, purpose
get_relationships(subject=None, purpose, predicate=None, object=None, source=None, limit=50)
get_relationships(subject=None, purpose, predicate=None, object=None, source=None, limit=50)`
- Python —
client.mcpclient.get_relationships(subject=None, purpose, predicate=None, object=None, source=None, limit=50) - TypeScript —
getRelationships(entityId, purpose, opts) - Go —
GetRelationships(entityID, purpose)
Parameters: subject=None, purpose, predicate=None, object=None, source=None, limit=50
get_timeline(entity_id, purpose, since_ns=None, until_ns=None)
get_timeline(entity_id, purpose, since_ns=None, until_ns=None)`
- Python —
client.mcpclient.get_timeline(entity_id, purpose, since_ns=None, until_ns=None) - TypeScript —
getTimeline(entityId, purpose, opts) - Go —
GetTimeline(entityID, purpose)
Parameters: entity_id, purpose, since_ns=None, until_ns=None
hub_authority(entity_type, max_iter=20, purpose='analytics')
hub_authority(entity_type, max_iter=20, purpose='analytics')`
- Python —
client.mcpclient.hub_authority(entity_type, max_iter=20, purpose='analytics') - TypeScript —
hubAuthority(entityType, opts) - Go —
HubAuthority(entityType)
Parameters: entity_type, max_iter=20, purpose='analytics'
hybrid_search(entity_type, query, top_k=10, purpose=None)
hybrid_search(entity_type, query, top_k=10, purpose=None)`
- Python —
client.mcpclient.hybrid_search(entity_type, query, top_k=10, purpose=None) - TypeScript —
hybridSearch(entityType, query, opts) - Go —
HybridSearch(entityType, query)
Parameters: entity_type, query, top_k=10, purpose=None
import_sigma(sigma_yaml, purpose='security')
import_sigma(sigma_yaml, purpose='security')`
- Python —
client.mcpclient.import_sigma(sigma_yaml, purpose='security') - TypeScript —
importSigma(sigmaYaml, opts) - Go —
ImportSigma(sigmaYAML, purpose)
Parameters: sigma_yaml, purpose='security'
ingest_document(chunks_jsonl, manifest_json, purpose)
ingest_document(chunks_jsonl, manifest_json, purpose)`
- Python —
client.mcpclient.ingest_document(chunks_jsonl, manifest_json, purpose) - TypeScript —
ingestDocument(chunksJsonl, manifestJson, purpose) - Go —
IngestDocument(chunksJSONL, manifestJSON, purpose)
Parameters: chunks_jsonl, manifest_json, purpose
ingest_media(object_type, modality='image', codec=None, bytes_b64=None, text=None, tenant_id=None, partition_key=None)
ingest_media(object_type, modality='image', codec=None, bytes_b64=None, text=None, tenant_id=None, partition_key=None)`
- Python —
client.mcpclient.ingest_media(object_type, modality='image', codec=None, bytes_b64=None, text=None, tenant_id=None, partition_key=None) - TypeScript —
ingestMedia(objectType, opts) - Go —
IngestMedia(objectType)
Parameters: object_type, modality='image', codec=None, bytes_b64=None, text=None, tenant_id=None, partition_key=None
initialize(client_id='relata-python-sdk', version='1.0')
initialize(client_id='relata-python-sdk', version='1.0')`
- Python —
client.mcpclient.initialize(client_id='relata-python-sdk', version='1.0') - TypeScript —
initialize(opts) - Go —
Initialize()
Parameters: client_id='relata-python-sdk', version='1.0'
investigate_entity(entity_type, entity_id, purpose='security_incident')
investigate_entity(entity_type, entity_id, purpose='security_incident')`
- Python —
client.mcpclient.investigate_entity(entity_type, entity_id, purpose='security_incident') - TypeScript —
investigateEntity(entityType, entityId, opts) - Go —
InvestigateEntity(entityType, entityID, purpose)
Parameters: entity_type, entity_id, purpose='security_incident'
job_status()
job_status()`
- Python —
client.mcpclient.job_status() - TypeScript —
jobStatus() - Go —
JobStatus()
justify(memory_id, purpose=None)
justify(memory_id, purpose=None)`
- Python —
client.mcpclient.justify(memory_id, purpose=None) - TypeScript —
justify(memoryId, opts) - Go —
Justify(memoryID, purpose)
Parameters: memory_id, purpose=None
list_entity_types()
list_entity_types()`
- Python —
client.mcpclient.list_entity_types() - TypeScript —
listEntityTypes() - Go —
ListEntityTypes()
list_jobs()
list_jobs()`
- Python —
client.mcpclient.list_jobs() - TypeScript —
listJobs() - Go —
ListJobs()
list_link_types()
list_link_types()`
- Python —
client.mcpclient.list_link_types() - TypeScript —
listLinkTypes() - Go —
ListLinkTypes()
list_rules()
list_rules()`
- Python —
client.mcpclient.list_rules() - TypeScript —
listRules() - Go —
ListRules()
list_tools()
list_tools()`
- Python —
client.mcpclient.list_tools() - TypeScript —
listTools() - Go —
ListTools()
list_workflows()
list_workflows()`
- Python —
client.mcpclient.list_workflows() - TypeScript —
listWorkflows() - Go —
ListWorkflows()
lookup_identity(value, purpose='analytics')
lookup_identity(value, purpose='analytics')`
- Python —
client.mcpclient.lookup_identity(value, purpose='analytics') - TypeScript —
lookupIdentity(value, opts) - Go —
LookupIdentity(value)
Parameters: value, purpose='analytics'
metrics()
metrics()`
- Python —
client.mcpclient.metrics() - TypeScript —
metrics() - Go —
Metrics()
nl_query(query, purpose=None, interpret=False, max_sub_questions=None)
nl_query(query, purpose=None, interpret=False, max_sub_questions=None)`
- Python —
client.mcpclient.nl_query(query, purpose=None, interpret=False, max_sub_questions=None) - TypeScript —
nlQuery(query, opts) - Go —
NlQuery(query)
Parameters: query, purpose=None, interpret=False, max_sub_questions=None
A dialect router classifies each question as SQL, Cypher, or a governed graph
operator (PATHS_BETWEEN / GRAPH_DIJKSTRA / GRAPH_COMMUNITY / IDENTITY_PATH
/ BENEFICIAL_OWNERSHIP_CHAIN / SANCTIONS_SCREEN) and prompts accordingly —
the response carries a dialect field. Pass max_sub_questions (capped at 5)
to decompose a multi-part question — e.g. "find John Smith, and who he is
linked to" — into independently-routed, independently-executed sub-questions;
the response then carries decomposed: true and a sub_results array instead
of a single result. Omitted or 1, the response shape is unchanged.
paths_between(from_id, to_id, max_hops=4, purpose=None)
paths_between(from_id, to_id, max_hops=4, purpose=None)`
- Python —
client.mcpclient.paths_between(from_id, to_id, max_hops=4, purpose=None) - TypeScript —
pathsBetween(fromId, toId, opts) - Go —
PathsBetween(fromID, toID)
Parameters: from_id, to_id, max_hops=4, purpose=None
predict_links(entity_type, from_id=None, to_id=None, method='common_neighbors', purpose='analytics')
predict_links(entity_type, from_id=None, to_id=None, method='common_neighbors', purpose='analytics')`
- Python —
client.mcpclient.predict_links(entity_type, from_id=None, to_id=None, method='common_neighbors', purpose='analytics') - TypeScript —
predictLinks(entityType, opts) - Go —
PredictLinks(entityType)
Parameters: entity_type, from_id=None, to_id=None, method='common_neighbors', purpose='analytics'
query_knowledge(sql, purpose)
query_knowledge(sql, purpose)`
- Python —
client.mcpclient.query_knowledge(sql, purpose) - TypeScript —
queryKnowledge(sql, purpose) - Go —
QueryKnowledge(sql, purpose)
Parameters: sql, purpose
rag_store_answer(question, answer, source_ids=None, purpose)
rag_store_answer(question, answer, source_ids=None, purpose)`
- Python —
client.mcpclient.rag_store_answer(question, answer, source_ids=None, purpose) - TypeScript —
ragStoreAnswer(question, answer, purpose, opts) - Go —
RagStoreAnswer(question, answer, purpose)
Parameters: question, answer, source_ids=None, purpose
rag_store_elements(elements, purpose)
rag_store_elements(elements, purpose)`
- Python —
client.mcpclient.rag_store_elements(elements, purpose) - TypeScript —
ragStoreElements(elements, purpose) - Go —
RagStoreElements(elements, sourceFilename, purpose)
Parameters: elements, purpose
rank_key_nodes(entity_type, metric='pagerank', damping=0.85, max_iter=20, purpose='analytics')
rank_key_nodes(entity_type, metric='pagerank', damping=0.85, max_iter=20, purpose='analytics')`
- Python —
client.mcpclient.rank_key_nodes(entity_type, metric='pagerank', damping=0.85, max_iter=20, purpose='analytics') - TypeScript —
rankKeyNodes(entityType, opts) - Go —
RankKeyNodes(entityType)
Parameters: entity_type, metric='pagerank', damping=0.85, max_iter=20, purpose='analytics'
recall(query, purpose, top_k=5, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None)
recall(query, purpose, top_k=5, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None)`
- Python —
client.mcpclient.recall(query, purpose, top_k=5, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None) - TypeScript —
recall(query, purpose, opts) - Go —
Recall(query, purpose)
Parameters: query, purpose, top_k=5, min_confidence=None, recency_half_life_secs=None, budget_tokens=None, stability_days=None, cancel_threshold=None
recall_procedure(agent_id, name=None, all_versions=False, limit=20, purpose=None)
recall_procedure(agent_id, name=None, all_versions=False, limit=20, purpose=None)`
- Python —
client.mcpclient.recall_procedure(agent_id, name=None, all_versions=False, limit=20, purpose=None) - TypeScript —
recallProcedure(agentId, opts) - Go —
RecallProcedure(agentID)
Parameters: agent_id, name=None, all_versions=False, limit=20, purpose=None
recognize(memory_id, purpose=None)
recognize(memory_id, purpose=None)`
- Python —
client.mcpclient.recognize(memory_id, purpose=None) - TypeScript —
recognize(memoryId, opts) - Go —
Recognize(memoryID, purpose)
Parameters: memory_id, purpose=None
reconstruct_wire(account, tolerance_pct=5.0, purpose='analytics')
reconstruct_wire(account, tolerance_pct=5.0, purpose='analytics')`
- Python —
client.mcpclient.reconstruct_wire(account, tolerance_pct=5.0, purpose='analytics') - TypeScript —
reconstructWire(account, opts) - Go —
ReconstructWire(account)
Parameters: account, tolerance_pct=5.0, purpose='analytics'
remember(content, purpose, confidence=1.0, memory_class='semantic')
remember(content, purpose, confidence=1.0, memory_class='semantic')`
- Python —
client.mcpclient.remember(content, purpose, confidence=1.0, memory_class='semantic') - TypeScript —
remember(content, purpose, opts) - Go —
Remember(content, purpose)
Parameters: content, purpose, confidence=1.0, memory_class='semantic'
remember_batch(items, purpose=None)
remember_batch(items, purpose=None)`
- Python —
client.mcpclient.remember_batch(items, purpose=None) - TypeScript —
rememberBatch(items, opts) - Go —
RememberBatch(items)
Parameters: items, purpose=None
remember_procedure(agent_id, name, instruction_text, purpose=None)
remember_procedure(agent_id, name, instruction_text, purpose=None)`
- Python —
client.mcpclient.remember_procedure(agent_id, name, instruction_text, purpose=None) - TypeScript —
rememberProcedure(agentId, name, instructionText, opts) - Go —
RememberProcedure(agentID, name, instructionText, purpose)
Parameters: agent_id, name, instruction_text, purpose=None
resolve(memory_id, purpose=None)
resolve(memory_id, purpose=None)`
- Python —
client.mcpclient.resolve(memory_id, purpose=None) - TypeScript —
resolve(memoryId, opts) - Go —
Resolve(memoryID, purpose)
Parameters: memory_id, purpose=None
resolve_entity_identity(identity, purpose='analytics')
resolve_entity_identity(identity, purpose='analytics')`
- Python —
client.mcpclient.resolve_entity_identity(identity, purpose='analytics') - TypeScript —
resolveEntityIdentity(identity, opts) - Go —
ResolveEntityIdentity(identity, purpose)
Parameters: identity, purpose='analytics'
run_workflow(name)
run_workflow(name)`
- Python —
client.mcpclient.run_workflow(name) - TypeScript —
runWorkflow(name) - Go —
RunWorkflow(name)
Parameters: name
schedule_job(name)
schedule_job(name)`
- Python —
client.mcpclient.schedule_job(name) - TypeScript —
scheduleJob(name) - Go —
ScheduleJob(name)
Parameters: name
screen_sanctions(name, threshold=None, purpose='compliance_review')
screen_sanctions(name, threshold=None, purpose='compliance_review')`
- Python —
client.mcpclient.screen_sanctions(name, threshold=None, purpose='compliance_review') - TypeScript —
screenSanctions(name, opts) - Go —
ScreenSanctions(name)
Parameters: name, threshold=None, purpose='compliance_review'
search_entities(query, entity_types=None)
search_entities(query, entity_types=None)`
- Python —
client.mcpclient.search_entities(query, entity_types=None) - TypeScript —
searchEntities(query, opts) - Go —
SearchEntities(query)
Parameters: query, entity_types=None
search_knowledge(query, purpose, top_k=10)
search_knowledge(query, purpose, top_k=10)`
- Python —
client.mcpclient.search_knowledge(query, purpose, top_k=10) - TypeScript —
searchKnowledge(query, purpose, opts) - Go —
SearchKnowledge(query, purpose, topK)
Parameters: query, purpose, top_k=10
search_video_frames(query_id, media_type='VideoFrame', top_k=20, purpose='security_incident')
search_video_frames(query_id, media_type='VideoFrame', top_k=20, purpose='security_incident')`
- Python —
client.mcpclient.search_video_frames(query_id, media_type='VideoFrame', top_k=20, purpose='security_incident') - TypeScript —
searchVideoFrames(queryId, opts) - Go —
SearchVideoFrames(queryID)
Parameters: query_id, media_type='VideoFrame', top_k=20, purpose='security_incident'
server_health()
server_health()`
- Python —
client.mcpclient.server_health() - TypeScript —
serverHealth() - Go —
ServerHealth()
similar_multimodal(entity_type, entity_id, top_k=10, modality='text', purpose=None)
similar_multimodal(entity_type, entity_id, top_k=10, modality='text', purpose=None)`
- Python —
client.mcpclient.similar_multimodal(entity_type, entity_id, top_k=10, modality='text', purpose=None) - TypeScript —
similarMultimodal(entityType, entityId, opts) - Go —
SimilarMultimodal(entityType, entityID)
Parameters: entity_type, entity_id, top_k=10, modality='text', purpose=None
suggest_extensions(prefix)
suggest_extensions(prefix)`
- Python —
client.mcpclient.suggest_extensions() - TypeScript —
suggestExtensions(prefix) - Go —
SuggestExtensions(prefix)
Parameters: prefix
summarise(ids=None, session_id=None, scope=None, contents=None, purpose=None)
summarise(ids=None, session_id=None, scope=None, contents=None, purpose=None)`
- Python —
client.mcpclient.summarise(ids=None, session_id=None, scope=None, contents=None, purpose=None) - TypeScript —
summarise(opts) - Go —
Summarise()
Parameters: ids=None, session_id=None, scope=None, contents=None, purpose=None
trace_crypto(address, max_hops=5, min_amount=0, purpose='analytics')
trace_crypto(address, max_hops=5, min_amount=0, purpose='analytics')`
- Python —
client.mcpclient.trace_crypto(address, max_hops=5, min_amount=0, purpose='analytics') - TypeScript —
traceCrypto(address, opts) - Go —
TraceCrypto(address)
Parameters: address, max_hops=5, min_amount=0, purpose='analytics'
trace_hawala(seed, max_hops=5, purpose='analytics')
trace_hawala(seed, max_hops=5, purpose='analytics')`
- Python —
client.mcpclient.trace_hawala(seed, max_hops=5, purpose='analytics') - TypeScript —
traceHawala(seed, opts) - Go —
TraceHawala(seed)
Parameters: seed, max_hops=5, purpose='analytics'
workflow_status(run_id)
workflow_status(run_id)`
- Python —
client.mcpclient.workflow_status(run_id) - TypeScript —
workflowStatus(runId) - Go —
WorkflowStatus(runID)
Parameters: run_id