MCP 서버

Salesforce AgentForce CKG

io.github.Yarmoluk/ckg-agentforce
AI 및 에이전트 지식 및 문서 사용 불가 MCP 2025-11-25

이 MCP로 할 수 있는 일

Queries and traverses a Salesforce AgentForce knowledge graph, including concepts, prerequisites, source verification, routing, and trust-chain evidence.

evaluate_trust_chain
Return a machine-readable JSON trust chain + ROI analysis + payment recommendation. Designed for autonomous agent consumption. The agent reads the JSON, evaluates the ROI gate, selects the cheapest positive-ROI payment option, and purchases autonomously if budget is pre-authorized. Trust chain closes the audit gap that RAG cannot: source_hashes → SHA-256 of source docs (what was known at extraction time) graph_hash → SHA-256 of the installed graph file (what is declared now) signer_key_id → Ed25519 public key fingerprint (who is attesting) benchmark_receipt → BoundaryAttest-signed F1 claim (cryptographic performance proof) scitt_status → SCITT ledger submission status (public audit anchor) ROI gate: if total_value_per_call_usd > payment_option.price_per_call_usd → autonomous_pay = true. Returns: JSON string (schema: ckg-trust-chain-v1).
입력 스키마
{'type': 'object', 'title': 'evaluate_trust_chainArguments', 'properties': {}}
출력 스키마
{'type': 'object', 'title': 'evaluate_trust_chainOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
export_benchmark_receipt
Generate a signed BoundaryAttest receipt for the agentforce CKG benchmark result. Produces a `ckg.benchmark_result.exported` claim signed with this server's Ed25519 session key. Any party holding the public key can verify the signature over the canonical JSON claim. Implements GuardrailDecisionV1 · experimental-interop-v0.1. Result: F1 0.471 over 30 queries · ckg-benchmark v0.6.2 · 4× over RAG baseline (0.123).
입력 스키마
{'type': 'object', 'title': 'export_benchmark_receiptArguments', 'properties': {}}
출력 스키마
{'type': 'object', 'title': 'export_benchmark_receiptOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_prerequisites
Return the full ordered prerequisite chain for an AgentForce concept. Shows everything the concept depends on — the complete upstream path. Args: concept: Target concept — e.g. 'Autonomous Resolution', 'Multi-LoRA Serving', 'Custom Actions', 'Semantic Retrieval'.
입력 스키마
{'type': 'object', 'title': 'get_prerequisitesArguments', 'required': ['concept'], 'properties': {'concept': {'type': 'string', 'title': 'Concept'}}}
출력 스키마
{'type': 'object', 'title': 'get_prerequisitesOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
list_concepts
List all 40 AgentForce concepts in this knowledge graph.
입력 스키마
{'type': 'object', 'title': 'list_conceptsArguments', 'properties': {}}
출력 스키마
{'type': 'object', 'title': 'list_conceptsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
query_ckg
Traverse the AgentForce knowledge graph from any concept. Returns prerequisites (what this concept needs) and dependents (what it enables). Every relationship traces to an authoritative Salesforce doc URL. Args: concept: Concept name — e.g. 'Autonomous Resolution', 'Einstein Trust Layer', 'Service Agent', 'Grounding', 'NVIDIA NIM'. depth: Traversal depth 1–5 (default 3).
입력 스키마
{'type': 'object', 'title': 'query_ckgArguments', 'required': ['concept'], 'properties': {'depth': {'type': 'integer', 'title': 'Depth', 'default': 3}, 'concept': {'type': 'string', 'title': 'Concept'}}}
출력 스키마
{'type': 'object', 'title': 'query_ckgOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
query_intersect
Answer a conjunctive query: concepts reachable from EVERY anchor at once (A AND B). query_ckg walks outward from one concept. This intersects the reachable sets of two or more, which is the shape of most real questions — "the component that satisfies A AND applies to B". Neither anchor alone answers it; the answer lives in the overlap. Every branch is an exact set of declared edges, so the intersection is exact. A concept appears only if a declared path reaches it from each anchor. A relation missing from the graph produces an empty result, never a guess. Args: branches: Two or more branches. Either a bare anchor ("TensorRT-LLM"), which takes everything within `depth` hops, or an anchor plus an explicit relation path using '>' ("TensorRT-LLM > REQUIRES > ENABLES"), where each relation replaces the frontier. '*' matches any relation. Mix both forms freely. depth: Hops for bare-anchor branches, 1-5 (default 2). Ignored for explicit paths. direction: 'out' follows dependencies, 'in' follows them backwards, 'both' (default). mode: 'AND' (default) intersects branches; 'OR' unions them. limit: Max concepts listed, 1-200 (default 40). The true count is always shown. Returns: Markdown with the query plan and its per-step set sizes, then the answer set with taxonomy tags. Reports which branch was empty when the intersection is empty.
입력 스키마
{'type': 'object', 'title': 'query_intersectArguments', 'required': ['branches'], 'properties': {'mode': {'type': 'string', 'title': 'Mode', 'default': 'AND'}, 'depth': {'type': 'integer', 'title': 'Depth', 'default': 2}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 40}, 'branches': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Branches'}, 'direction': {'type': 'string', 'title': 'Direction', 'default': 'both'}}}
출력 스키마
{'type': 'object', 'title': 'query_intersectOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
resolution_path
Trace the exact path that determines an AgentForce autonomous resolution event. This is the $2/resolution billing path — what the agent must traverse correctly to resolve autonomously without human handoff.
입력 스키마
{'type': 'object', 'title': 'resolution_pathArguments', 'properties': {}}
출력 스키마
{'type': 'object', 'title': 'resolution_pathOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
route_query
Route an AgentForce question to the optimal model and reasoning approach via graph depth. The CKG graph IS the router. AgentForce dependency chains (e.g. Einstein Trust Layer → Data Cloud → NVIDIA NIM → Resolution Criteria) have typed hops that signal reasoning complexity deterministically. No heuristic: the graph decides. Routing table: hop_depth 1 → haiku · direct (simple concept lookup) hop_depth 2 → sonnet · generic_cot (moderate chain) hop_depth 3+ → opus · sparql_cot (deep dependency, structured reasoning) Args: question: Concept name or natural language question about Salesforce AgentForce. Returns: model_tier + reasoning_approach + why + context subgraph to inject before LLM call.
입력 스키마
{'type': 'object', 'title': 'route_queryArguments', 'required': ['question'], 'properties': {'question': {'type': 'string', 'title': 'Question'}}}
출력 스키마
{'type': 'object', 'title': 'route_queryOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
search_concepts
Find AgentForce concepts by keyword. Args: query: Search term — e.g. 'resolution', 'trust', 'grounding', 'action', 'NIM'.
입력 스키마
{'type': 'object', 'title': 'search_conceptsArguments', 'required': ['query'], 'properties': {'query': {'type': 'string', 'title': 'Query'}}}
출력 스키마
{'type': 'object', 'title': 'search_conceptsOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
verify_source
Return the source URL and content hash for an AgentForce concept node. Audit chain: edge answer → graph commit → source_hash → source_url (fetch hint) Verification: curl -s <source_url> | sha256sum # compare output to source_hash Args: concept: Concept label (partial match supported). receipt: If True, also return a signed BoundaryAttest receipt envelope (experimental-interop-v0.1) binding concept_label + source_url + source_hash + timestamp to this server's ed25519 session key.
입력 스키마
{'type': 'object', 'title': 'verify_sourceArguments', 'required': ['concept'], 'properties': {'concept': {'type': 'string', 'title': 'Concept'}, 'receipt': {'type': 'boolean', 'title': 'Receipt', 'default': False}}}
출력 스키마
{'type': 'object', 'title': 'verify_sourceOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
추가됨
query_intersect
2026년 9월 17일 12:53 PM
추가됨
evaluate_trust_chain
2026년 9월 17일 12:53 PM
추가됨
export_benchmark_receipt
2026년 9월 17일 12:53 PM
추가됨
verify_source
2026년 9월 17일 12:53 PM
추가됨
route_query
2026년 9월 17일 12:53 PM
추가됨
resolution_path
2026년 9월 17일 12:53 PM
추가됨
get_prerequisites
2026년 9월 17일 12:53 PM
추가됨
query_ckg
2026년 9월 17일 12:53 PM
추가됨
search_concepts
2026년 9월 17일 12:53 PM
추가됨
list_concepts
2026년 9월 17일 12:53 PM