Assistant: codex Assistant-Model: gpt-5.6-luna Assistant-Session: 01a087b0-7b1e-7531-8ef3-6525ebaf7ee7
281 lines
8 KiB
YAML
281 lines
8 KiB
YAML
fiam_version: '0.2'
|
|
instance:
|
|
id: adversarial.manual-family-label
|
|
kind: model
|
|
title: MCP server over stdio
|
|
status: provisional
|
|
intent: Model a local agent-to-tool interface using MCP over JSON-RPC and stdio.
|
|
nodes:
|
|
- id: node.agent-host
|
|
kind: system-node
|
|
name: Agent Host
|
|
node_type: fiam.node-type.application
|
|
- id: node.mcp-server
|
|
kind: system-node
|
|
name: Local MCP Server
|
|
node_type: fiam.node-type.process
|
|
ports:
|
|
- id: port.agent.mcp-client
|
|
owner: node.agent-host
|
|
participations:
|
|
- contract: contract.mcp.tools
|
|
mode: requires
|
|
roles:
|
|
- fiam.role.client
|
|
- id: port.server.mcp
|
|
owner: node.mcp-server
|
|
participations:
|
|
- contract: contract.mcp.tools
|
|
mode: offers
|
|
roles:
|
|
- fiam.role.server
|
|
contracts:
|
|
- id: contract.mcp.tools
|
|
kind: interface-contract
|
|
purpose:
|
|
- fiam.purpose.tool-invocation
|
|
contract_forms:
|
|
- fiam.contract-form.mcp
|
|
operations:
|
|
- id: operation.mcp.tools-list
|
|
name: tools/list
|
|
interaction_style: fiam.interaction-style.rpc
|
|
- id: operation.mcp.tools-call
|
|
name: tools/call
|
|
interaction_style: fiam.interaction-style.rpc
|
|
family_labels:
|
|
- fiam.family.agent-tool-interface
|
|
- id: contract.tool.read-file
|
|
kind: interface-contract
|
|
name: read_file tool
|
|
purpose:
|
|
- fiam.purpose.tool-invocation
|
|
operations:
|
|
- id: operation.tool.read-file
|
|
name: read_file
|
|
interaction_style: fiam.interaction-style.rpc
|
|
bindings:
|
|
- id: binding.mcp.stdio
|
|
contract: contract.mcp.tools
|
|
provider_port: port.server.mcp
|
|
consumer_ports:
|
|
- port.agent.mcp-client
|
|
binding_profile: fiam.binding-profile.mcp-stdio
|
|
communication_stack:
|
|
- role: fiam.stack-role.application-protocol
|
|
term: fiam.protocol.mcp
|
|
- role: fiam.stack-role.messaging-protocol
|
|
term: fiam.protocol.json-rpc-2.0
|
|
- role: fiam.stack-role.ipc-process-carrier
|
|
term: fiam.carrier.stdio
|
|
addressing:
|
|
kind: fiam.addressing.process-spawn
|
|
value: command invocation
|
|
session_model: fiam.session.long-lived-process
|
|
channels:
|
|
- id: channel.mcp.stdio
|
|
kind: channel
|
|
channel_type: fiam.channel.bidirectional-byte-stream
|
|
mediation: fiam.mediation.direct
|
|
interactions:
|
|
- id: interaction.tools-call
|
|
operation: operation.mcp.tools-call
|
|
binding: binding.mcp.stdio
|
|
channel: channel.mcp.stdio
|
|
temporal_semantics: fiam.temporal.synchronous
|
|
participants:
|
|
initiator: node.agent-host
|
|
responder: node.mcp-server
|
|
- id: interaction.read-file
|
|
kind: interaction
|
|
operation: operation.tool.read-file
|
|
binding: binding.mcp.stdio
|
|
channel: channel.mcp.stdio
|
|
temporal_semantics: fiam.temporal.synchronous
|
|
participants:
|
|
initiator: node.agent-host
|
|
responder: node.mcp-server
|
|
realization_status: fiam.interaction-status.executed
|
|
assertions:
|
|
- id: assertion.mcp.protocol
|
|
subject: binding.mcp.stdio
|
|
predicate: fiam.property.communication-protocol
|
|
value: fiam.protocol.mcp
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: MCP specification
|
|
confidence: 1.0
|
|
assertion_kind: property
|
|
polarity: asserted
|
|
- id: assertion.local-boundary
|
|
subject: binding.mcp.stdio
|
|
predicate: fiam.property.execution-boundary
|
|
value: fiam.execution-boundary.local-process
|
|
evidence:
|
|
mode: fiam.evidence.inferred
|
|
source: stdio binding semantics
|
|
confidence: 0.99
|
|
assertion_kind: property
|
|
polarity: asserted
|
|
- id: assertion.mcp.catalog-elements
|
|
assertion_kind: relation
|
|
subject: shape.mcp.tool-catalog
|
|
predicate: fiam.relation.element-shape
|
|
polarity: asserted
|
|
object_ref: shape.mcp.tool-descriptor
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
slot: tools
|
|
role: fiam.shape-role.element
|
|
- id: assertion.mcp.tools-list-produces
|
|
assertion_kind: relation
|
|
subject: operation.mcp.tools-list
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.mcp.tool-catalog
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
representation: fiam.representation.json
|
|
- id: assertion.mcp.tool-discovered
|
|
assertion_kind: relation
|
|
subject: operation.tool.read-file
|
|
predicate: fiam.relation.discovered-via
|
|
polarity: asserted
|
|
object_ref: operation.mcp.tools-list
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
- id: assertion.mcp.tool-contract-embedded
|
|
assertion_kind: relation
|
|
subject: contract.tool.read-file
|
|
predicate: fiam.relation.embedded-in
|
|
polarity: asserted
|
|
object_ref: operation.mcp.tools-call
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
slot: params.arguments
|
|
- id: assertion.read-file.accepts
|
|
assertion_kind: relation
|
|
subject: operation.tool.read-file
|
|
predicate: fiam.relation.accepts-shape
|
|
polarity: asserted
|
|
object_ref: shape.read-file.args
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.request
|
|
- id: assertion.read-file.produces
|
|
assertion_kind: relation
|
|
subject: operation.tool.read-file
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.read-file.result
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
- id: assertion.read-file.actual-input
|
|
assertion_kind: relation
|
|
subject: interaction.read-file
|
|
predicate: fiam.relation.accepts-shape
|
|
polarity: asserted
|
|
object_ref: shape.read-file.args
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.request
|
|
representation: fiam.representation.json
|
|
- id: assertion.read-file.actual-output
|
|
assertion_kind: relation
|
|
subject: interaction.read-file
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.read-file.result
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: FIAM v0.2 semantic specimen
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
representation: fiam.representation.json
|
|
- id: assertion.mcp.tools-call-accepts
|
|
assertion_kind: relation
|
|
subject: operation.mcp.tools-call
|
|
predicate: fiam.relation.accepts-shape
|
|
polarity: asserted
|
|
object_ref: shape.mcp.tool-call-request
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: MCP contract fixture
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.request
|
|
representation: fiam.representation.json
|
|
- id: assertion.mcp.tools-call-produces
|
|
assertion_kind: relation
|
|
subject: operation.mcp.tools-call
|
|
predicate: fiam.relation.produces-shape
|
|
polarity: asserted
|
|
object_ref: shape.mcp.tool-call-result
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: MCP contract fixture
|
|
confidence: 0.98
|
|
facets:
|
|
role: fiam.shape-role.response
|
|
representation: fiam.representation.json
|
|
- id: assertion.mcp.call-embeds-tool-args
|
|
assertion_kind: relation
|
|
subject: shape.mcp.tool-call-request
|
|
predicate: fiam.relation.embeds-shape
|
|
polarity: asserted
|
|
object_ref: shape.read-file.args
|
|
evidence:
|
|
mode: fiam.evidence.declared
|
|
source: MCP contract fixture
|
|
confidence: 0.98
|
|
facets:
|
|
slot: params.arguments
|
|
role: fiam.shape-role.payload
|
|
information_shapes:
|
|
- id: shape.mcp.tool-catalog
|
|
kind: information-shape
|
|
name: MCP tool catalog
|
|
shape_kind: fiam.information-shape.collection
|
|
- id: shape.mcp.tool-descriptor
|
|
kind: information-shape
|
|
name: MCP tool descriptor
|
|
shape_kind: fiam.information-shape.object
|
|
- id: shape.read-file.args
|
|
kind: information-shape
|
|
name: read_file arguments
|
|
shape_kind: fiam.information-shape.object
|
|
- id: shape.read-file.result
|
|
kind: information-shape
|
|
name: read_file result
|
|
shape_kind: fiam.information-shape.object
|
|
- id: shape.mcp.tool-call-request
|
|
kind: information-shape
|
|
name: MCP tools/call request
|
|
shape_kind: fiam.information-shape.object
|
|
- id: shape.mcp.tool-call-result
|
|
kind: information-shape
|
|
name: MCP tools/call result
|
|
shape_kind: fiam.information-shape.object
|