@snokam/mcp-api 2.15.0 → 2.15.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snokam/mcp-api",
3
- "version": "2.15.0",
3
+ "version": "2.15.1",
4
4
  "description": "MCP server exposing Snokam backend APIs as tools for Claude Code and other MCP clients",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1515,6 +1515,141 @@
1515
1515
  ]
1516
1516
  }
1517
1517
  },
1518
+ "/v1.0/salesforce/opportunities": {
1519
+ "get": {
1520
+ "tags": [
1521
+ "Salesforce"
1522
+ ],
1523
+ "summary": "List Salesforce Opportunities (open by default).",
1524
+ "operationId": "ListSalesforceOpportunities",
1525
+ "parameters": [
1526
+ {
1527
+ "name": "includeClosed",
1528
+ "in": "query",
1529
+ "schema": {
1530
+ "type": "boolean"
1531
+ },
1532
+ "x-ms-summary": "Include closed opportunities (default false)."
1533
+ },
1534
+ {
1535
+ "name": "limit",
1536
+ "in": "query",
1537
+ "schema": {
1538
+ "type": "integer",
1539
+ "format": "int32"
1540
+ },
1541
+ "x-ms-summary": "Row cap, max 200 (default 100)."
1542
+ }
1543
+ ],
1544
+ "responses": {
1545
+ "200": {
1546
+ "description": "Payload of Array of SalesforceOpportunity",
1547
+ "content": {
1548
+ "application/json": {
1549
+ "schema": {
1550
+ "type": "array",
1551
+ "items": {
1552
+ "$ref": "#/components/schemas/salesforceOpportunity"
1553
+ }
1554
+ }
1555
+ }
1556
+ }
1557
+ }
1558
+ },
1559
+ "security": [
1560
+ {
1561
+ "Implicit": [
1562
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1563
+ ]
1564
+ }
1565
+ ]
1566
+ }
1567
+ },
1568
+ "/v1.0/tenders/{id}/salesforce": {
1569
+ "post": {
1570
+ "tags": [
1571
+ "Salesforce"
1572
+ ],
1573
+ "summary": "Create a Salesforce Opportunity from a Snøkam tender and cache the link.",
1574
+ "operationId": "PromoteTenderToSalesforce",
1575
+ "parameters": [
1576
+ {
1577
+ "name": "id",
1578
+ "in": "path",
1579
+ "required": true,
1580
+ "schema": {
1581
+ "type": "string"
1582
+ }
1583
+ }
1584
+ ],
1585
+ "responses": {
1586
+ "200": {
1587
+ "description": "Payload of Tender",
1588
+ "content": {
1589
+ "application/json": {
1590
+ "schema": {
1591
+ "$ref": "#/components/schemas/tender"
1592
+ }
1593
+ }
1594
+ }
1595
+ },
1596
+ "404": {
1597
+ "description": "No description"
1598
+ },
1599
+ "409": {
1600
+ "description": "Tender is already linked to a Salesforce Opportunity."
1601
+ }
1602
+ },
1603
+ "security": [
1604
+ {
1605
+ "Implicit": [
1606
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1607
+ ]
1608
+ }
1609
+ ]
1610
+ }
1611
+ },
1612
+ "/v1.0/tenders/{id}/salesforce/refresh": {
1613
+ "post": {
1614
+ "tags": [
1615
+ "Salesforce"
1616
+ ],
1617
+ "summary": "Re-sync cached Salesforce Opportunity state (stage / closed / won) onto the tender.",
1618
+ "operationId": "RefreshTenderSalesforceLink",
1619
+ "parameters": [
1620
+ {
1621
+ "name": "id",
1622
+ "in": "path",
1623
+ "required": true,
1624
+ "schema": {
1625
+ "type": "string"
1626
+ }
1627
+ }
1628
+ ],
1629
+ "responses": {
1630
+ "200": {
1631
+ "description": "Payload of Tender",
1632
+ "content": {
1633
+ "application/json": {
1634
+ "schema": {
1635
+ "$ref": "#/components/schemas/tender"
1636
+ }
1637
+ }
1638
+ }
1639
+ },
1640
+ "404": {
1641
+ "description": "No description"
1642
+ }
1643
+ },
1644
+ "security": [
1645
+ {
1646
+ "Implicit": [
1647
+ "api://7e877854-e62d-4637-a655-1da7141f7ac9/.default"
1648
+ ]
1649
+ }
1650
+ ]
1651
+ }
1652
+ },
1518
1653
  "/v1.0/tenders/stats": {
1519
1654
  "get": {
1520
1655
  "tags": [
@@ -2895,6 +3030,82 @@
2895
3030
  },
2896
3031
  "nullable": true
2897
3032
  },
3033
+ "salesforceAttributes": {
3034
+ "type": "object",
3035
+ "properties": {
3036
+ "type": {
3037
+ "type": "string",
3038
+ "nullable": true
3039
+ },
3040
+ "url": {
3041
+ "type": "string",
3042
+ "nullable": true
3043
+ }
3044
+ },
3045
+ "nullable": true
3046
+ },
3047
+ "salesforceOpportunity": {
3048
+ "type": "object",
3049
+ "properties": {
3050
+ "attributes": {
3051
+ "$ref": "#/components/schemas/salesforceAttributes"
3052
+ },
3053
+ "Id": {
3054
+ "type": "string",
3055
+ "nullable": true
3056
+ },
3057
+ "Name": {
3058
+ "type": "string",
3059
+ "nullable": true
3060
+ },
3061
+ "StageName": {
3062
+ "type": "string",
3063
+ "nullable": true
3064
+ },
3065
+ "CloseDate": {
3066
+ "type": "string",
3067
+ "format": "date-time",
3068
+ "nullable": true
3069
+ },
3070
+ "IsClosed": {
3071
+ "type": "boolean",
3072
+ "nullable": true
3073
+ },
3074
+ "IsWon": {
3075
+ "type": "boolean",
3076
+ "nullable": true
3077
+ },
3078
+ "Amount": {
3079
+ "type": "number",
3080
+ "format": "double",
3081
+ "nullable": true
3082
+ },
3083
+ "Account": {
3084
+ "$ref": "#/components/schemas/salesforceReference"
3085
+ },
3086
+ "Owner": {
3087
+ "$ref": "#/components/schemas/salesforceReference"
3088
+ },
3089
+ "Snokam_Tender_Id__c": {
3090
+ "type": "string",
3091
+ "nullable": true
3092
+ }
3093
+ }
3094
+ },
3095
+ "salesforceReference": {
3096
+ "type": "object",
3097
+ "properties": {
3098
+ "Name": {
3099
+ "type": "string",
3100
+ "nullable": true
3101
+ },
3102
+ "Id": {
3103
+ "type": "string",
3104
+ "nullable": true
3105
+ }
3106
+ },
3107
+ "nullable": true
3108
+ },
2898
3109
  "sourceFile": {
2899
3110
  "type": "object",
2900
3111
  "properties": {
@@ -3005,6 +3216,9 @@
3005
3216
  "blobContainer": {
3006
3217
  "type": "string",
3007
3218
  "nullable": true
3219
+ },
3220
+ "salesforce": {
3221
+ "$ref": "#/components/schemas/tenderSalesforce"
3008
3222
  }
3009
3223
  }
3010
3224
  },
@@ -3263,6 +3477,37 @@
3263
3477
  },
3264
3478
  "nullable": true
3265
3479
  },
3480
+ "tenderSalesforce": {
3481
+ "type": "object",
3482
+ "properties": {
3483
+ "opportunityId": {
3484
+ "type": "string",
3485
+ "nullable": true
3486
+ },
3487
+ "stageName": {
3488
+ "type": "string",
3489
+ "nullable": true
3490
+ },
3491
+ "isClosed": {
3492
+ "type": "boolean",
3493
+ "nullable": true
3494
+ },
3495
+ "isWon": {
3496
+ "type": "boolean",
3497
+ "nullable": true
3498
+ },
3499
+ "url": {
3500
+ "type": "string",
3501
+ "nullable": true
3502
+ },
3503
+ "lastSyncedAt": {
3504
+ "type": "string",
3505
+ "format": "date-time",
3506
+ "nullable": true
3507
+ }
3508
+ },
3509
+ "nullable": true
3510
+ },
3266
3511
  "tenderSource": {
3267
3512
  "type": "object",
3268
3513
  "properties": {
@@ -1515,6 +1515,141 @@
1515
1515
  ]
1516
1516
  }
1517
1517
  },
1518
+ "/v1.0/salesforce/opportunities": {
1519
+ "get": {
1520
+ "tags": [
1521
+ "Salesforce"
1522
+ ],
1523
+ "summary": "List Salesforce Opportunities (open by default).",
1524
+ "operationId": "ListSalesforceOpportunities",
1525
+ "parameters": [
1526
+ {
1527
+ "name": "includeClosed",
1528
+ "in": "query",
1529
+ "schema": {
1530
+ "type": "boolean"
1531
+ },
1532
+ "x-ms-summary": "Include closed opportunities (default false)."
1533
+ },
1534
+ {
1535
+ "name": "limit",
1536
+ "in": "query",
1537
+ "schema": {
1538
+ "type": "integer",
1539
+ "format": "int32"
1540
+ },
1541
+ "x-ms-summary": "Row cap, max 200 (default 100)."
1542
+ }
1543
+ ],
1544
+ "responses": {
1545
+ "200": {
1546
+ "description": "Payload of Array of SalesforceOpportunity",
1547
+ "content": {
1548
+ "application/json": {
1549
+ "schema": {
1550
+ "type": "array",
1551
+ "items": {
1552
+ "$ref": "#/components/schemas/salesforceOpportunity"
1553
+ }
1554
+ }
1555
+ }
1556
+ }
1557
+ }
1558
+ },
1559
+ "security": [
1560
+ {
1561
+ "Implicit": [
1562
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1563
+ ]
1564
+ }
1565
+ ]
1566
+ }
1567
+ },
1568
+ "/v1.0/tenders/{id}/salesforce": {
1569
+ "post": {
1570
+ "tags": [
1571
+ "Salesforce"
1572
+ ],
1573
+ "summary": "Create a Salesforce Opportunity from a Snøkam tender and cache the link.",
1574
+ "operationId": "PromoteTenderToSalesforce",
1575
+ "parameters": [
1576
+ {
1577
+ "name": "id",
1578
+ "in": "path",
1579
+ "required": true,
1580
+ "schema": {
1581
+ "type": "string"
1582
+ }
1583
+ }
1584
+ ],
1585
+ "responses": {
1586
+ "200": {
1587
+ "description": "Payload of Tender",
1588
+ "content": {
1589
+ "application/json": {
1590
+ "schema": {
1591
+ "$ref": "#/components/schemas/tender"
1592
+ }
1593
+ }
1594
+ }
1595
+ },
1596
+ "404": {
1597
+ "description": "No description"
1598
+ },
1599
+ "409": {
1600
+ "description": "Tender is already linked to a Salesforce Opportunity."
1601
+ }
1602
+ },
1603
+ "security": [
1604
+ {
1605
+ "Implicit": [
1606
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1607
+ ]
1608
+ }
1609
+ ]
1610
+ }
1611
+ },
1612
+ "/v1.0/tenders/{id}/salesforce/refresh": {
1613
+ "post": {
1614
+ "tags": [
1615
+ "Salesforce"
1616
+ ],
1617
+ "summary": "Re-sync cached Salesforce Opportunity state (stage / closed / won) onto the tender.",
1618
+ "operationId": "RefreshTenderSalesforceLink",
1619
+ "parameters": [
1620
+ {
1621
+ "name": "id",
1622
+ "in": "path",
1623
+ "required": true,
1624
+ "schema": {
1625
+ "type": "string"
1626
+ }
1627
+ }
1628
+ ],
1629
+ "responses": {
1630
+ "200": {
1631
+ "description": "Payload of Tender",
1632
+ "content": {
1633
+ "application/json": {
1634
+ "schema": {
1635
+ "$ref": "#/components/schemas/tender"
1636
+ }
1637
+ }
1638
+ }
1639
+ },
1640
+ "404": {
1641
+ "description": "No description"
1642
+ }
1643
+ },
1644
+ "security": [
1645
+ {
1646
+ "Implicit": [
1647
+ "api://d7f15838-af74-4048-88b3-503089de0064/.default"
1648
+ ]
1649
+ }
1650
+ ]
1651
+ }
1652
+ },
1518
1653
  "/v1.0/tenders/stats": {
1519
1654
  "get": {
1520
1655
  "tags": [
@@ -2895,6 +3030,82 @@
2895
3030
  },
2896
3031
  "nullable": true
2897
3032
  },
3033
+ "salesforceAttributes": {
3034
+ "type": "object",
3035
+ "properties": {
3036
+ "type": {
3037
+ "type": "string",
3038
+ "nullable": true
3039
+ },
3040
+ "url": {
3041
+ "type": "string",
3042
+ "nullable": true
3043
+ }
3044
+ },
3045
+ "nullable": true
3046
+ },
3047
+ "salesforceOpportunity": {
3048
+ "type": "object",
3049
+ "properties": {
3050
+ "attributes": {
3051
+ "$ref": "#/components/schemas/salesforceAttributes"
3052
+ },
3053
+ "Id": {
3054
+ "type": "string",
3055
+ "nullable": true
3056
+ },
3057
+ "Name": {
3058
+ "type": "string",
3059
+ "nullable": true
3060
+ },
3061
+ "StageName": {
3062
+ "type": "string",
3063
+ "nullable": true
3064
+ },
3065
+ "CloseDate": {
3066
+ "type": "string",
3067
+ "format": "date-time",
3068
+ "nullable": true
3069
+ },
3070
+ "IsClosed": {
3071
+ "type": "boolean",
3072
+ "nullable": true
3073
+ },
3074
+ "IsWon": {
3075
+ "type": "boolean",
3076
+ "nullable": true
3077
+ },
3078
+ "Amount": {
3079
+ "type": "number",
3080
+ "format": "double",
3081
+ "nullable": true
3082
+ },
3083
+ "Account": {
3084
+ "$ref": "#/components/schemas/salesforceReference"
3085
+ },
3086
+ "Owner": {
3087
+ "$ref": "#/components/schemas/salesforceReference"
3088
+ },
3089
+ "Snokam_Tender_Id__c": {
3090
+ "type": "string",
3091
+ "nullable": true
3092
+ }
3093
+ }
3094
+ },
3095
+ "salesforceReference": {
3096
+ "type": "object",
3097
+ "properties": {
3098
+ "Name": {
3099
+ "type": "string",
3100
+ "nullable": true
3101
+ },
3102
+ "Id": {
3103
+ "type": "string",
3104
+ "nullable": true
3105
+ }
3106
+ },
3107
+ "nullable": true
3108
+ },
2898
3109
  "sourceFile": {
2899
3110
  "type": "object",
2900
3111
  "properties": {
@@ -3005,6 +3216,9 @@
3005
3216
  "blobContainer": {
3006
3217
  "type": "string",
3007
3218
  "nullable": true
3219
+ },
3220
+ "salesforce": {
3221
+ "$ref": "#/components/schemas/tenderSalesforce"
3008
3222
  }
3009
3223
  }
3010
3224
  },
@@ -3263,6 +3477,37 @@
3263
3477
  },
3264
3478
  "nullable": true
3265
3479
  },
3480
+ "tenderSalesforce": {
3481
+ "type": "object",
3482
+ "properties": {
3483
+ "opportunityId": {
3484
+ "type": "string",
3485
+ "nullable": true
3486
+ },
3487
+ "stageName": {
3488
+ "type": "string",
3489
+ "nullable": true
3490
+ },
3491
+ "isClosed": {
3492
+ "type": "boolean",
3493
+ "nullable": true
3494
+ },
3495
+ "isWon": {
3496
+ "type": "boolean",
3497
+ "nullable": true
3498
+ },
3499
+ "url": {
3500
+ "type": "string",
3501
+ "nullable": true
3502
+ },
3503
+ "lastSyncedAt": {
3504
+ "type": "string",
3505
+ "format": "date-time",
3506
+ "nullable": true
3507
+ }
3508
+ },
3509
+ "nullable": true
3510
+ },
3266
3511
  "tenderSource": {
3267
3512
  "type": "object",
3268
3513
  "properties": {