@emilia-protocol/mcp-server 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +33 -18
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -60,6 +60,7 @@ import {
60
60
  CallToolRequestSchema,
61
61
  ListToolsRequestSchema,
62
62
  ListResourcesRequestSchema,
63
+ ListResourceTemplatesRequestSchema,
63
64
  ReadResourceRequestSchema,
64
65
  ListPromptsRequestSchema,
65
66
  GetPromptRequestSchema,
@@ -247,7 +248,7 @@ const TOOLS = [
247
248
  type: 'object',
248
249
  properties: {
249
250
  query: { type: 'string', description: 'Search query' },
250
- entity_type: { type: 'string', enum: ['agent','merchant','service_provider','github_app','github_action','mcp_server','npm_package','chrome_extension','shopify_app','marketplace_plugin','agent_tool'] },
251
+ entity_type: { type: 'string', description: 'Optional filter — restrict results to a single entity type.', enum: ['agent','merchant','service_provider','github_app','github_action','mcp_server','npm_package','chrome_extension','shopify_app','marketplace_plugin','agent_tool'] },
251
252
  },
252
253
  required: ['query'],
253
254
  },
@@ -277,11 +278,11 @@ const TOOLS = [
277
278
  inputSchema: {
278
279
  type: 'object',
279
280
  properties: {
280
- entity_id: { type: 'string', description: 'Slug (lowercase, hyphens)' },
281
- display_name: { type: 'string' },
282
- entity_type: { type: 'string', enum: ['agent','merchant','service_provider','github_app','github_action','mcp_server','npm_package','chrome_extension','shopify_app','marketplace_plugin','agent_tool'] },
283
- description: { type: 'string' },
284
- capabilities: { type: 'array', items: { type: 'string' } },
281
+ entity_id: { type: 'string', description: 'Unique slug for the entity (lowercase, hyphens), e.g. "acme-treasury-agent". Becomes its permanent id.' },
282
+ display_name: { type: 'string', description: 'Human-readable name shown in trust profiles and receipts, e.g. "Acme Treasury Agent".' },
283
+ entity_type: { type: 'string', description: 'What kind of actor this is — determines which trust policies apply.', enum: ['agent','merchant','service_provider','github_app','github_action','mcp_server','npm_package','chrome_extension','shopify_app','marketplace_plugin','agent_tool'] },
284
+ description: { type: 'string', description: 'One or two sentences on what the entity does; used for discovery and capability matching.' },
285
+ capabilities: { type: 'array', items: { type: 'string' }, description: 'Optional list of capability tags, e.g. ["payments","kyc"], used by ep_search_entities.' },
285
286
  },
286
287
  required: ['entity_id', 'display_name', 'entity_type', 'description'],
287
288
  },
@@ -297,7 +298,7 @@ const TOOLS = [
297
298
  type: 'object',
298
299
  properties: {
299
300
  limit: { type: 'number', description: 'Max entities (default 10, max 50)' },
300
- entity_type: { type: 'string', enum: ['agent','merchant','service_provider','github_app','github_action','mcp_server','npm_package','chrome_extension','shopify_app','marketplace_plugin','agent_tool'] },
301
+ entity_type: { type: 'string', description: 'Optional filter — restrict results to a single entity type.', enum: ['agent','merchant','service_provider','github_app','github_action','mcp_server','npm_package','chrome_extension','shopify_app','marketplace_plugin','agent_tool'] },
301
302
  },
302
303
  },
303
304
  },
@@ -426,9 +427,11 @@ const TOOLS = [
426
427
  {
427
428
  name: 'ep_create_delegation',
428
429
  description:
429
- 'Create a delegation record: a human or principal authorizes an agent to act on their behalf. ' +
430
- 'The delegation is recorded in the EP ledger with scope, expiry, and optional constraints. ' +
431
- 'Every delegated action can reference this delegation to prove authorization.',
430
+ 'Create a delegation record. WRITE: persists to the EP ledger that a human or ' +
431
+ 'principal authorizes an agent to act on their behalf, with scope, expiry, and ' +
432
+ 'optional constraints. Requires auth. Returns a delegation_id that later actions ' +
433
+ 'reference (via ep_verify_delegation) to prove authorization. Use when a principal ' +
434
+ 'grants an agent standing authority for a bounded set of actions.',
432
435
  inputSchema: {
433
436
  type: 'object',
434
437
  properties: {
@@ -674,8 +677,10 @@ const TOOLS = [
674
677
  {
675
678
  name: 'ep_verify_commit',
676
679
  description:
677
- 'Verify a commit\'s signature, status, and validity. ' +
678
- 'Returns valid/invalid, current status, decision, and expiry.',
680
+ 'Verify a pre-action commit read-only, no side effects. Checks its signature, ' +
681
+ 'status, and validity and returns valid/invalid plus the current status, decision, ' +
682
+ 'and expiry. Use before relying on or consuming a commit to confirm it is genuine ' +
683
+ 'and still active.',
679
684
  inputSchema: {
680
685
  type: 'object',
681
686
  properties: {
@@ -762,9 +767,11 @@ const TOOLS = [
762
767
  {
763
768
  name: 'ep_add_presentation',
764
769
  description:
765
- 'Add an identity presentation (proof) to an active handshake. ' +
766
- 'Each party presents their identity claims for evaluation against the handshake policy. ' +
767
- 'Supports full, selective, or zero-knowledge disclosure modes.',
770
+ 'Add an identity presentation (proof) to an active handshake. WRITE: appends ' +
771
+ 'the party\'s identity claims to the handshake for evaluation against its policy; ' +
772
+ 'supports full, selective, or zero-knowledge disclosure. Requires auth. Returns ' +
773
+ 'the updated presentation count and handshake state. Call after ' +
774
+ 'ep_initiate_handshake and before ep_verify_handshake.',
768
775
  inputSchema: {
769
776
  type: 'object',
770
777
  properties: {
@@ -781,9 +788,11 @@ const TOOLS = [
781
788
  {
782
789
  name: 'ep_verify_handshake',
783
790
  description:
784
- 'Evaluate all presentations in a handshake against the governing policy. ' +
785
- 'Returns: accepted (all requirements met), rejected (policy violations), or partial (awaiting presentations). ' +
786
- 'Includes reason_codes explaining the outcome.',
791
+ 'Evaluate all presentations in a handshake against its governing policy — read-only, ' +
792
+ 'no mutation. Returns accepted (all requirements met), rejected (policy violations), ' +
793
+ 'or partial (awaiting presentations), each with reason_codes explaining the outcome. ' +
794
+ 'Call after the parties have added their presentations to decide whether the ' +
795
+ 'handshake clears.',
787
796
  inputSchema: {
788
797
  type: 'object',
789
798
  properties: {
@@ -1612,6 +1621,12 @@ const RESOURCES = [
1612
1621
 
1613
1622
  server.setRequestHandler(ListResourcesRequestSchema, async () => ({ resources: RESOURCES }));
1614
1623
 
1624
+ // Clients (Claude included) probe resources/templates/list on startup whenever
1625
+ // a server advertises the `resources` capability. We expose no URI templates,
1626
+ // but the method must exist — without it the client gets MCP -32601
1627
+ // "Method not found" on every connect.
1628
+ server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => ({ resourceTemplates: [] }));
1629
+
1615
1630
  server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
1616
1631
  const { uri } = request.params;
1617
1632
  let data;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@emilia-protocol/mcp-server",
3
3
  "mcpName": "io.github.emiliaprotocol/mcp-server",
4
- "version": "1.0.1",
4
+ "version": "1.0.3",
5
5
  "description": "EMILIA Protocol MCP Server — trust enforcement for high-risk actions via MCP. Pre-action binding, policy-bound verification, and accountable human signoff.",
6
6
  "main": "index.js",
7
7
  "type": "module",