@snokam/mcp-api 0.108.2 → 0.109.0

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": "0.108.2",
3
+ "version": "0.109.0",
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": {
@@ -4449,6 +4449,9 @@
4449
4449
  "isExternal": {
4450
4450
  "type": "boolean"
4451
4451
  },
4452
+ "isPublic": {
4453
+ "type": "boolean"
4454
+ },
4452
4455
  "isSeekingProject": {
4453
4456
  "type": "boolean"
4454
4457
  },
@@ -736,6 +736,52 @@
736
736
  ]
737
737
  }
738
738
  },
739
+ "/v1.0/protected/me/photo": {
740
+ "post": {
741
+ "tags": [
742
+ "Protected"
743
+ ],
744
+ "summary": "Uploads the authenticated user's profile photo",
745
+ "description": "Stores the photo and a blurred variant on the employee. Body is the raw image bytes.",
746
+ "operationId": "SetMyPhoto",
747
+ "requestBody": {
748
+ "description": "Raw image bytes",
749
+ "content": {
750
+ "application/octet-stream": {
751
+ "schema": {
752
+ "type": "string",
753
+ "format": "binary"
754
+ }
755
+ }
756
+ },
757
+ "required": true
758
+ },
759
+ "responses": {
760
+ "200": {
761
+ "description": "Photo updated successfully",
762
+ "content": {
763
+ "application/json": {
764
+ "schema": {
765
+ "$ref": "#/components/schemas/protectedEmployee"
766
+ }
767
+ }
768
+ },
769
+ "x-ms-summary": "Success"
770
+ },
771
+ "401": {
772
+ "description": "User is not authorized",
773
+ "x-ms-summary": "Unauthorized"
774
+ }
775
+ },
776
+ "security": [
777
+ {
778
+ "Implicit": [
779
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
780
+ ]
781
+ }
782
+ ]
783
+ }
784
+ },
739
785
  "/v1.0/protected/{id}": {
740
786
  "put": {
741
787
  "tags": [
@@ -841,6 +887,63 @@
841
887
  ]
842
888
  }
843
889
  },
890
+ "/v1.0/protected/{id}/photo": {
891
+ "post": {
892
+ "tags": [
893
+ "Protected"
894
+ ],
895
+ "summary": "Uploads a profile photo for an employee (admin)",
896
+ "description": "Stores the photo and a blurred variant on the given employee. Body is the raw image bytes.",
897
+ "operationId": "SetEmployeePhoto",
898
+ "parameters": [
899
+ {
900
+ "name": "id",
901
+ "in": "path",
902
+ "required": true,
903
+ "schema": {
904
+ "type": "string"
905
+ },
906
+ "x-ms-summary": "The employee Sanity id"
907
+ }
908
+ ],
909
+ "requestBody": {
910
+ "description": "Raw image bytes",
911
+ "content": {
912
+ "application/octet-stream": {
913
+ "schema": {
914
+ "type": "string",
915
+ "format": "binary"
916
+ }
917
+ }
918
+ },
919
+ "required": true
920
+ },
921
+ "responses": {
922
+ "200": {
923
+ "description": "Photo updated successfully",
924
+ "content": {
925
+ "application/json": {
926
+ "schema": {
927
+ "$ref": "#/components/schemas/protectedEmployee"
928
+ }
929
+ }
930
+ },
931
+ "x-ms-summary": "Success"
932
+ },
933
+ "401": {
934
+ "description": "User is not authorized",
935
+ "x-ms-summary": "Unauthorized"
936
+ }
937
+ },
938
+ "security": [
939
+ {
940
+ "Implicit": [
941
+ "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
942
+ ]
943
+ }
944
+ ]
945
+ }
946
+ },
844
947
  "/v1.0/protected/me/gadgetbudget": {
845
948
  "get": {
846
949
  "tags": [
@@ -1722,6 +1825,10 @@
1722
1825
  "type": "boolean",
1723
1826
  "nullable": true
1724
1827
  },
1828
+ "isPublic": {
1829
+ "type": "boolean",
1830
+ "nullable": true
1831
+ },
1725
1832
  "isSeekingProject": {
1726
1833
  "type": "boolean",
1727
1834
  "nullable": true
@@ -1918,6 +2025,9 @@
1918
2025
  "isExternal": {
1919
2026
  "type": "boolean"
1920
2027
  },
2028
+ "isPublic": {
2029
+ "type": "boolean"
2030
+ },
1921
2031
  "isSeekingProject": {
1922
2032
  "type": "boolean"
1923
2033
  },
@@ -2003,6 +2113,10 @@
2003
2113
  "type": "boolean",
2004
2114
  "nullable": true
2005
2115
  },
2116
+ "isPublic": {
2117
+ "type": "boolean",
2118
+ "nullable": true
2119
+ },
2006
2120
  "image": {
2007
2121
  "$ref": "#/components/schemas/sanityImage"
2008
2122
  },
@@ -30305,6 +30305,9 @@
30305
30305
  "isSeekingProject": {
30306
30306
  "type": "boolean"
30307
30307
  },
30308
+ "isPublic": {
30309
+ "type": "boolean"
30310
+ },
30308
30311
  "active": {
30309
30312
  "type": "boolean"
30310
30313
  },
@@ -30664,6 +30667,9 @@
30664
30667
  "isSeekingProject": {
30665
30668
  "type": "boolean"
30666
30669
  },
30670
+ "isPublic": {
30671
+ "type": "boolean"
30672
+ },
30667
30673
  "active": {
30668
30674
  "type": "boolean"
30669
30675
  },
@@ -30932,6 +30938,10 @@
30932
30938
  "type": "boolean",
30933
30939
  "nullable": true
30934
30940
  },
30941
+ "isPublic": {
30942
+ "type": "boolean",
30943
+ "nullable": true
30944
+ },
30935
30945
  "isSeekingProject": {
30936
30946
  "type": "boolean",
30937
30947
  "nullable": true
@@ -50,40 +50,6 @@
50
50
  ]
51
51
  }
52
52
  },
53
- "/v1.0/azure-ad-to-sanity": {
54
- "get": {
55
- "tags": [
56
- "Sync"
57
- ],
58
- "summary": "Syncs Azure AD to Sanity",
59
- "description": "Synchronizes data from Azure AD to Sanity.",
60
- "operationId": "SyncAzureAdToSanity",
61
- "responses": {
62
- "200": {
63
- "description": "Data synchronized successfully",
64
- "content": {
65
- "application/json": {
66
- "schema": {
67
- "type": "string"
68
- }
69
- }
70
- },
71
- "x-ms-summary": "Success"
72
- },
73
- "401": {
74
- "description": "Unauthorized access",
75
- "x-ms-summary": "Unauthorized"
76
- }
77
- },
78
- "security": [
79
- {
80
- "Implicit": [
81
- "api://bb21a8d0-366b-4a95-aa59-dbbf708322d1/.default"
82
- ]
83
- }
84
- ]
85
- }
86
- },
87
53
  "/v1.0/cv-partner-to-sanity": {
88
54
  "get": {
89
55
  "tags": [
@@ -4449,6 +4449,9 @@
4449
4449
  "isExternal": {
4450
4450
  "type": "boolean"
4451
4451
  },
4452
+ "isPublic": {
4453
+ "type": "boolean"
4454
+ },
4452
4455
  "isSeekingProject": {
4453
4456
  "type": "boolean"
4454
4457
  },
@@ -736,6 +736,52 @@
736
736
  ]
737
737
  }
738
738
  },
739
+ "/v1.0/protected/me/photo": {
740
+ "post": {
741
+ "tags": [
742
+ "Protected"
743
+ ],
744
+ "summary": "Uploads the authenticated user's profile photo",
745
+ "description": "Stores the photo and a blurred variant on the employee. Body is the raw image bytes.",
746
+ "operationId": "SetMyPhoto",
747
+ "requestBody": {
748
+ "description": "Raw image bytes",
749
+ "content": {
750
+ "application/octet-stream": {
751
+ "schema": {
752
+ "type": "string",
753
+ "format": "binary"
754
+ }
755
+ }
756
+ },
757
+ "required": true
758
+ },
759
+ "responses": {
760
+ "200": {
761
+ "description": "Photo updated successfully",
762
+ "content": {
763
+ "application/json": {
764
+ "schema": {
765
+ "$ref": "#/components/schemas/protectedEmployee"
766
+ }
767
+ }
768
+ },
769
+ "x-ms-summary": "Success"
770
+ },
771
+ "401": {
772
+ "description": "User is not authorized",
773
+ "x-ms-summary": "Unauthorized"
774
+ }
775
+ },
776
+ "security": [
777
+ {
778
+ "Implicit": [
779
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
780
+ ]
781
+ }
782
+ ]
783
+ }
784
+ },
739
785
  "/v1.0/protected/{id}": {
740
786
  "put": {
741
787
  "tags": [
@@ -841,6 +887,63 @@
841
887
  ]
842
888
  }
843
889
  },
890
+ "/v1.0/protected/{id}/photo": {
891
+ "post": {
892
+ "tags": [
893
+ "Protected"
894
+ ],
895
+ "summary": "Uploads a profile photo for an employee (admin)",
896
+ "description": "Stores the photo and a blurred variant on the given employee. Body is the raw image bytes.",
897
+ "operationId": "SetEmployeePhoto",
898
+ "parameters": [
899
+ {
900
+ "name": "id",
901
+ "in": "path",
902
+ "required": true,
903
+ "schema": {
904
+ "type": "string"
905
+ },
906
+ "x-ms-summary": "The employee Sanity id"
907
+ }
908
+ ],
909
+ "requestBody": {
910
+ "description": "Raw image bytes",
911
+ "content": {
912
+ "application/octet-stream": {
913
+ "schema": {
914
+ "type": "string",
915
+ "format": "binary"
916
+ }
917
+ }
918
+ },
919
+ "required": true
920
+ },
921
+ "responses": {
922
+ "200": {
923
+ "description": "Photo updated successfully",
924
+ "content": {
925
+ "application/json": {
926
+ "schema": {
927
+ "$ref": "#/components/schemas/protectedEmployee"
928
+ }
929
+ }
930
+ },
931
+ "x-ms-summary": "Success"
932
+ },
933
+ "401": {
934
+ "description": "User is not authorized",
935
+ "x-ms-summary": "Unauthorized"
936
+ }
937
+ },
938
+ "security": [
939
+ {
940
+ "Implicit": [
941
+ "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
942
+ ]
943
+ }
944
+ ]
945
+ }
946
+ },
844
947
  "/v1.0/protected/me/gadgetbudget": {
845
948
  "get": {
846
949
  "tags": [
@@ -1722,6 +1825,10 @@
1722
1825
  "type": "boolean",
1723
1826
  "nullable": true
1724
1827
  },
1828
+ "isPublic": {
1829
+ "type": "boolean",
1830
+ "nullable": true
1831
+ },
1725
1832
  "isSeekingProject": {
1726
1833
  "type": "boolean",
1727
1834
  "nullable": true
@@ -1918,6 +2025,9 @@
1918
2025
  "isExternal": {
1919
2026
  "type": "boolean"
1920
2027
  },
2028
+ "isPublic": {
2029
+ "type": "boolean"
2030
+ },
1921
2031
  "isSeekingProject": {
1922
2032
  "type": "boolean"
1923
2033
  },
@@ -2003,6 +2113,10 @@
2003
2113
  "type": "boolean",
2004
2114
  "nullable": true
2005
2115
  },
2116
+ "isPublic": {
2117
+ "type": "boolean",
2118
+ "nullable": true
2119
+ },
2006
2120
  "image": {
2007
2121
  "$ref": "#/components/schemas/sanityImage"
2008
2122
  },
@@ -30305,6 +30305,9 @@
30305
30305
  "isSeekingProject": {
30306
30306
  "type": "boolean"
30307
30307
  },
30308
+ "isPublic": {
30309
+ "type": "boolean"
30310
+ },
30308
30311
  "active": {
30309
30312
  "type": "boolean"
30310
30313
  },
@@ -30664,6 +30667,9 @@
30664
30667
  "isSeekingProject": {
30665
30668
  "type": "boolean"
30666
30669
  },
30670
+ "isPublic": {
30671
+ "type": "boolean"
30672
+ },
30667
30673
  "active": {
30668
30674
  "type": "boolean"
30669
30675
  },
@@ -30932,6 +30938,10 @@
30932
30938
  "type": "boolean",
30933
30939
  "nullable": true
30934
30940
  },
30941
+ "isPublic": {
30942
+ "type": "boolean",
30943
+ "nullable": true
30944
+ },
30935
30945
  "isSeekingProject": {
30936
30946
  "type": "boolean",
30937
30947
  "nullable": true
@@ -50,40 +50,6 @@
50
50
  ]
51
51
  }
52
52
  },
53
- "/v1.0/azure-ad-to-sanity": {
54
- "get": {
55
- "tags": [
56
- "Sync"
57
- ],
58
- "summary": "Syncs Azure AD to Sanity",
59
- "description": "Synchronizes data from Azure AD to Sanity.",
60
- "operationId": "SyncAzureAdToSanity",
61
- "responses": {
62
- "200": {
63
- "description": "Data synchronized successfully",
64
- "content": {
65
- "application/json": {
66
- "schema": {
67
- "type": "string"
68
- }
69
- }
70
- },
71
- "x-ms-summary": "Success"
72
- },
73
- "401": {
74
- "description": "Unauthorized access",
75
- "x-ms-summary": "Unauthorized"
76
- }
77
- },
78
- "security": [
79
- {
80
- "Implicit": [
81
- "api://b2c47b20-df4a-49b5-a7ee-87f3647ab227/.default"
82
- ]
83
- }
84
- ]
85
- }
86
- },
87
53
  "/v1.0/cv-partner-to-sanity": {
88
54
  "get": {
89
55
  "tags": [