mongodb-mcp-server 0.1.2 → 0.2.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.
Files changed (270) hide show
  1. package/.github/pull_request_template.md +5 -0
  2. package/.github/workflows/accuracy-tests.yml +55 -0
  3. package/.github/workflows/check.yml +1 -1
  4. package/.github/workflows/code_health.yaml +4 -4
  5. package/.github/workflows/code_health_fork.yaml +0 -14
  6. package/.github/workflows/dependabot_pr.yaml +26 -0
  7. package/.github/workflows/docker.yaml +1 -1
  8. package/.github/workflows/jira-issue.yml +72 -0
  9. package/.smithery/smithery.yaml +10 -0
  10. package/.vscode/extensions.json +1 -1
  11. package/.vscode/launch.json +11 -1
  12. package/.vscode/settings.json +1 -11
  13. package/Dockerfile +1 -0
  14. package/README.md +132 -31
  15. package/dist/common/atlas/accessListUtils.js +36 -0
  16. package/dist/common/atlas/accessListUtils.js.map +1 -0
  17. package/dist/common/atlas/apiClient.js +25 -6
  18. package/dist/common/atlas/apiClient.js.map +1 -1
  19. package/dist/common/atlas/cluster.js +1 -1
  20. package/dist/common/atlas/cluster.js.map +1 -1
  21. package/dist/{config.js → common/config.js} +8 -1
  22. package/dist/common/config.js.map +1 -0
  23. package/dist/{errors.js → common/errors.js} +1 -0
  24. package/dist/common/errors.js.map +1 -0
  25. package/dist/{logger.js → common/logger.js} +20 -19
  26. package/dist/common/logger.js.map +1 -0
  27. package/dist/common/managedTimeout.js +20 -0
  28. package/dist/common/managedTimeout.js.map +1 -0
  29. package/dist/common/packageInfo.js.map +1 -0
  30. package/dist/{session.js → common/session.js} +20 -21
  31. package/dist/common/session.js.map +1 -0
  32. package/dist/common/sessionStore.js +73 -0
  33. package/dist/common/sessionStore.js.map +1 -0
  34. package/dist/helpers/container.js +28 -0
  35. package/dist/helpers/container.js.map +1 -0
  36. package/dist/helpers/generatePassword.js.map +1 -0
  37. package/dist/helpers/indexCheck.js +63 -0
  38. package/dist/helpers/indexCheck.js.map +1 -0
  39. package/dist/index.js +30 -37
  40. package/dist/index.js.map +1 -1
  41. package/dist/server.js +44 -7
  42. package/dist/server.js.map +1 -1
  43. package/dist/telemetry/constants.js +1 -1
  44. package/dist/telemetry/constants.js.map +1 -1
  45. package/dist/telemetry/telemetry.js +86 -116
  46. package/dist/telemetry/telemetry.js.map +1 -1
  47. package/dist/tools/atlas/atlasTool.js +3 -3
  48. package/dist/tools/atlas/atlasTool.js.map +1 -1
  49. package/dist/tools/atlas/connect/connectCluster.js +198 -0
  50. package/dist/tools/atlas/connect/connectCluster.js.map +1 -0
  51. package/dist/tools/atlas/create/createAccessList.js +9 -10
  52. package/dist/tools/atlas/create/createAccessList.js.map +1 -1
  53. package/dist/tools/atlas/create/createDBUser.js +3 -1
  54. package/dist/tools/atlas/create/createDBUser.js.map +1 -1
  55. package/dist/tools/atlas/create/createFreeCluster.js +2 -0
  56. package/dist/tools/atlas/create/createFreeCluster.js.map +1 -1
  57. package/dist/tools/atlas/create/createProject.js.map +1 -1
  58. package/dist/tools/atlas/read/inspectAccessList.js.map +1 -1
  59. package/dist/tools/atlas/read/inspectCluster.js.map +1 -1
  60. package/dist/tools/atlas/read/listAlerts.js.map +1 -1
  61. package/dist/tools/atlas/read/listClusters.js.map +1 -1
  62. package/dist/tools/atlas/read/listDBUsers.js.map +1 -1
  63. package/dist/tools/atlas/read/listOrgs.js.map +1 -1
  64. package/dist/tools/atlas/read/listProjects.js.map +1 -1
  65. package/dist/tools/atlas/tools.js +1 -1
  66. package/dist/tools/atlas/tools.js.map +1 -1
  67. package/dist/tools/mongodb/{metadata → connect}/connect.js +7 -4
  68. package/dist/tools/mongodb/connect/connect.js.map +1 -0
  69. package/dist/tools/mongodb/create/createCollection.js.map +1 -1
  70. package/dist/tools/mongodb/create/createIndex.js +1 -1
  71. package/dist/tools/mongodb/create/createIndex.js.map +1 -1
  72. package/dist/tools/mongodb/create/insertMany.js +1 -1
  73. package/dist/tools/mongodb/create/insertMany.js.map +1 -1
  74. package/dist/tools/mongodb/delete/deleteMany.js +20 -1
  75. package/dist/tools/mongodb/delete/deleteMany.js.map +1 -1
  76. package/dist/tools/mongodb/delete/dropCollection.js.map +1 -1
  77. package/dist/tools/mongodb/delete/dropDatabase.js.map +1 -1
  78. package/dist/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  79. package/dist/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  80. package/dist/tools/mongodb/metadata/dbStats.js.map +1 -1
  81. package/dist/tools/mongodb/metadata/explain.js +2 -2
  82. package/dist/tools/mongodb/metadata/explain.js.map +1 -1
  83. package/dist/tools/mongodb/metadata/listCollections.js.map +1 -1
  84. package/dist/tools/mongodb/metadata/listDatabases.js.map +1 -1
  85. package/dist/tools/mongodb/metadata/logs.js.map +1 -1
  86. package/dist/tools/mongodb/mongodbTool.js +47 -10
  87. package/dist/tools/mongodb/mongodbTool.js.map +1 -1
  88. package/dist/tools/mongodb/read/aggregate.js +10 -1
  89. package/dist/tools/mongodb/read/aggregate.js.map +1 -1
  90. package/dist/tools/mongodb/read/collectionIndexes.js.map +1 -1
  91. package/dist/tools/mongodb/read/count.js +15 -1
  92. package/dist/tools/mongodb/read/count.js.map +1 -1
  93. package/dist/tools/mongodb/read/find.js +14 -4
  94. package/dist/tools/mongodb/read/find.js.map +1 -1
  95. package/dist/tools/mongodb/tools.js +1 -1
  96. package/dist/tools/mongodb/tools.js.map +1 -1
  97. package/dist/tools/mongodb/update/renameCollection.js.map +1 -1
  98. package/dist/tools/mongodb/update/updateMany.js +24 -2
  99. package/dist/tools/mongodb/update/updateMany.js.map +1 -1
  100. package/dist/tools/tool.js +12 -9
  101. package/dist/tools/tool.js.map +1 -1
  102. package/dist/transports/base.js +26 -0
  103. package/dist/transports/base.js.map +1 -0
  104. package/dist/{helpers/EJsonTransport.js → transports/stdio.js} +24 -2
  105. package/dist/transports/stdio.js.map +1 -0
  106. package/dist/transports/streamableHttp.js +140 -0
  107. package/dist/transports/streamableHttp.js.map +1 -0
  108. package/eslint.config.js +13 -4
  109. package/package.json +43 -33
  110. package/resources/test-summary-template.html +415 -0
  111. package/scripts/accuracy/generateTestSummary.ts +335 -0
  112. package/scripts/accuracy/runAccuracyTests.sh +45 -0
  113. package/scripts/accuracy/updateAccuracyRunStatus.ts +21 -0
  114. package/src/common/atlas/accessListUtils.ts +54 -0
  115. package/src/common/atlas/apiClient.ts +25 -6
  116. package/src/common/atlas/cluster.ts +1 -1
  117. package/src/{config.ts → common/config.ts} +16 -2
  118. package/src/{errors.ts → common/errors.ts} +1 -0
  119. package/src/{logger.ts → common/logger.ts} +21 -24
  120. package/src/common/managedTimeout.ts +27 -0
  121. package/src/{session.ts → common/session.ts} +24 -26
  122. package/src/common/sessionStore.ts +111 -0
  123. package/src/helpers/container.ts +35 -0
  124. package/src/helpers/indexCheck.ts +83 -0
  125. package/src/index.ts +30 -40
  126. package/src/server.ts +55 -11
  127. package/src/telemetry/constants.ts +1 -1
  128. package/src/telemetry/telemetry.ts +109 -153
  129. package/src/telemetry/types.ts +2 -1
  130. package/src/tools/atlas/atlasTool.ts +4 -4
  131. package/src/tools/atlas/connect/connectCluster.ts +259 -0
  132. package/src/tools/atlas/create/createAccessList.ts +15 -13
  133. package/src/tools/atlas/create/createDBUser.ts +5 -3
  134. package/src/tools/atlas/create/createFreeCluster.ts +4 -2
  135. package/src/tools/atlas/create/createProject.ts +2 -2
  136. package/src/tools/atlas/read/inspectAccessList.ts +2 -2
  137. package/src/tools/atlas/read/inspectCluster.ts +2 -2
  138. package/src/tools/atlas/read/listAlerts.ts +2 -2
  139. package/src/tools/atlas/read/listClusters.ts +2 -2
  140. package/src/tools/atlas/read/listDBUsers.ts +2 -2
  141. package/src/tools/atlas/read/listOrgs.ts +2 -2
  142. package/src/tools/atlas/read/listProjects.ts +2 -2
  143. package/src/tools/atlas/tools.ts +1 -1
  144. package/src/tools/mongodb/{metadata → connect}/connect.ts +12 -9
  145. package/src/tools/mongodb/create/createCollection.ts +2 -2
  146. package/src/tools/mongodb/create/createIndex.ts +3 -3
  147. package/src/tools/mongodb/create/insertMany.ts +3 -3
  148. package/src/tools/mongodb/delete/deleteMany.ts +24 -3
  149. package/src/tools/mongodb/delete/dropCollection.ts +2 -2
  150. package/src/tools/mongodb/delete/dropDatabase.ts +2 -2
  151. package/src/tools/mongodb/metadata/collectionSchema.ts +2 -2
  152. package/src/tools/mongodb/metadata/collectionStorageSize.ts +2 -2
  153. package/src/tools/mongodb/metadata/dbStats.ts +2 -2
  154. package/src/tools/mongodb/metadata/explain.ts +4 -4
  155. package/src/tools/mongodb/metadata/listCollections.ts +2 -2
  156. package/src/tools/mongodb/metadata/listDatabases.ts +2 -2
  157. package/src/tools/mongodb/metadata/logs.ts +2 -2
  158. package/src/tools/mongodb/mongodbTool.ts +60 -14
  159. package/src/tools/mongodb/read/aggregate.ts +14 -3
  160. package/src/tools/mongodb/read/collectionIndexes.ts +2 -2
  161. package/src/tools/mongodb/read/count.ts +19 -3
  162. package/src/tools/mongodb/read/find.ts +20 -6
  163. package/src/tools/mongodb/tools.ts +1 -1
  164. package/src/tools/mongodb/update/renameCollection.ts +2 -2
  165. package/src/tools/mongodb/update/updateMany.ts +28 -4
  166. package/src/tools/tool.ts +23 -18
  167. package/src/transports/base.ts +34 -0
  168. package/src/{helpers/EJsonTransport.ts → transports/stdio.ts} +30 -1
  169. package/src/transports/streamableHttp.ts +178 -0
  170. package/tests/accuracy/aggregate.test.ts +27 -0
  171. package/tests/accuracy/collectionIndexes.test.ts +40 -0
  172. package/tests/accuracy/collectionSchema.test.ts +28 -0
  173. package/tests/accuracy/collectionStorageSize.test.ts +41 -0
  174. package/tests/accuracy/count.test.ts +44 -0
  175. package/tests/accuracy/createCollection.test.ts +46 -0
  176. package/tests/accuracy/createIndex.test.ts +37 -0
  177. package/tests/accuracy/dbStats.test.ts +15 -0
  178. package/tests/accuracy/deleteMany.test.ts +44 -0
  179. package/tests/accuracy/dropCollection.test.ts +74 -0
  180. package/tests/accuracy/dropDatabase.test.ts +41 -0
  181. package/tests/accuracy/explain.test.ts +73 -0
  182. package/tests/accuracy/find.test.ts +114 -0
  183. package/tests/accuracy/insertMany.test.ts +48 -0
  184. package/tests/accuracy/listCollections.test.ts +60 -0
  185. package/tests/accuracy/listDatabases.test.ts +31 -0
  186. package/tests/accuracy/logs.test.ts +28 -0
  187. package/tests/accuracy/renameCollection.test.ts +31 -0
  188. package/tests/accuracy/sdk/accuracyResultStorage/diskStorage.ts +189 -0
  189. package/tests/accuracy/sdk/accuracyResultStorage/getAccuracyResultStorage.ts +11 -0
  190. package/tests/accuracy/sdk/accuracyResultStorage/mongodbStorage.ts +151 -0
  191. package/tests/accuracy/sdk/accuracyResultStorage/resultStorage.ts +117 -0
  192. package/tests/accuracy/sdk/accuracyScorer.ts +93 -0
  193. package/tests/accuracy/sdk/accuracyTestingClient.ts +94 -0
  194. package/tests/accuracy/sdk/agent.ts +56 -0
  195. package/tests/accuracy/sdk/constants.ts +26 -0
  196. package/tests/accuracy/sdk/describeAccuracyTests.ts +126 -0
  197. package/tests/accuracy/sdk/gitInfo.ts +7 -0
  198. package/tests/accuracy/sdk/matcher.ts +193 -0
  199. package/tests/accuracy/sdk/models.ts +95 -0
  200. package/tests/accuracy/test-data-dumps/comics.books.json +417 -0
  201. package/tests/accuracy/test-data-dumps/comics.characters.json +402 -0
  202. package/tests/accuracy/test-data-dumps/mflix.movies.json +496 -0
  203. package/tests/accuracy/test-data-dumps/mflix.shows.json +572 -0
  204. package/tests/accuracy/updateMany.test.ts +42 -0
  205. package/tests/integration/helpers.ts +9 -9
  206. package/tests/integration/indexCheck.test.ts +464 -0
  207. package/tests/integration/server.test.ts +6 -4
  208. package/tests/integration/telemetry.test.ts +29 -0
  209. package/tests/integration/tools/atlas/accessLists.test.ts +22 -2
  210. package/tests/integration/tools/atlas/alerts.test.ts +3 -2
  211. package/tests/integration/tools/atlas/atlasHelpers.ts +3 -0
  212. package/tests/integration/tools/atlas/clusters.test.ts +68 -16
  213. package/tests/integration/tools/atlas/dbUsers.test.ts +14 -1
  214. package/tests/integration/tools/atlas/orgs.test.ts +2 -1
  215. package/tests/integration/tools/atlas/projects.test.ts +4 -3
  216. package/tests/integration/tools/mongodb/{metadata → connect}/connect.test.ts +34 -3
  217. package/tests/integration/tools/mongodb/create/createCollection.test.ts +1 -0
  218. package/tests/integration/tools/mongodb/create/createIndex.test.ts +1 -0
  219. package/tests/integration/tools/mongodb/create/insertMany.test.ts +1 -0
  220. package/tests/integration/tools/mongodb/delete/deleteMany.test.ts +1 -0
  221. package/tests/integration/tools/mongodb/delete/dropCollection.test.ts +1 -1
  222. package/tests/integration/tools/mongodb/delete/dropDatabase.test.ts +1 -0
  223. package/tests/integration/tools/mongodb/metadata/collectionSchema.test.ts +1 -0
  224. package/tests/integration/tools/mongodb/metadata/collectionStorageSize.test.ts +1 -0
  225. package/tests/integration/tools/mongodb/metadata/dbStats.test.ts +1 -0
  226. package/tests/integration/tools/mongodb/metadata/explain.test.ts +1 -0
  227. package/tests/integration/tools/mongodb/metadata/listCollections.test.ts +1 -0
  228. package/tests/integration/tools/mongodb/metadata/listDatabases.test.ts +3 -2
  229. package/tests/integration/tools/mongodb/metadata/logs.test.ts +1 -0
  230. package/tests/integration/tools/mongodb/mongodbHelpers.ts +67 -2
  231. package/tests/integration/tools/mongodb/read/aggregate.test.ts +2 -1
  232. package/tests/integration/tools/mongodb/read/collectionIndexes.test.ts +1 -0
  233. package/tests/integration/tools/mongodb/read/count.test.ts +1 -0
  234. package/tests/integration/tools/mongodb/read/find.test.ts +2 -1
  235. package/tests/integration/tools/mongodb/update/renameCollection.test.ts +1 -0
  236. package/tests/integration/tools/mongodb/update/updateMany.test.ts +1 -0
  237. package/tests/integration/transports/stdio.test.ts +40 -0
  238. package/tests/integration/transports/streamableHttp.test.ts +56 -0
  239. package/tests/matchers/toIncludeSameMembers.test.ts +59 -0
  240. package/tests/matchers/toIncludeSameMembers.ts +12 -0
  241. package/tests/setup.ts +7 -0
  242. package/tests/unit/accessListUtils.test.ts +39 -0
  243. package/tests/unit/accuracyScorer.test.ts +390 -0
  244. package/tests/unit/{apiClient.test.ts → common/apiClient.test.ts} +15 -15
  245. package/tests/unit/common/managedTimeout.test.ts +67 -0
  246. package/tests/unit/{session.test.ts → common/session.test.ts} +7 -12
  247. package/tests/unit/helpers/indexCheck.test.ts +150 -0
  248. package/tests/unit/telemetry.test.ts +99 -137
  249. package/tests/unit/{EJsonTransport.test.ts → transports/stdio.test.ts} +4 -4
  250. package/tests/vitest.d.ts +11 -0
  251. package/tsconfig.json +0 -1
  252. package/{tsconfig.jest.json → tsconfig.test.json} +1 -2
  253. package/vitest.config.ts +41 -0
  254. package/dist/common/atlas/generatePassword.js.map +0 -1
  255. package/dist/config.js.map +0 -1
  256. package/dist/errors.js.map +0 -1
  257. package/dist/helpers/EJsonTransport.js.map +0 -1
  258. package/dist/helpers/packageInfo.js.map +0 -1
  259. package/dist/logger.js.map +0 -1
  260. package/dist/session.js.map +0 -1
  261. package/dist/tools/atlas/metadata/connectCluster.js +0 -100
  262. package/dist/tools/atlas/metadata/connectCluster.js.map +0 -1
  263. package/dist/tools/mongodb/metadata/connect.js.map +0 -1
  264. package/global.d.ts +0 -1
  265. package/jest.config.cjs +0 -22
  266. package/src/tools/atlas/metadata/connectCluster.ts +0 -121
  267. /package/dist/{helpers → common}/packageInfo.js +0 -0
  268. /package/dist/{common/atlas → helpers}/generatePassword.js +0 -0
  269. /package/src/{helpers → common}/packageInfo.ts +0 -0
  270. /package/src/{common/atlas → helpers}/generatePassword.ts +0 -0
@@ -0,0 +1,402 @@
1
+ [
2
+ {
3
+ "_id": "d7047787-abea-40fa-b78e-939925fd3589",
4
+ "name": "Elizabeth Robinson",
5
+ "alias": "ashley62",
6
+ "powers": ["Shapeshifting", "Telepathy", "Flight"],
7
+ "first_appearance": "1961-06-23T00:00:00",
8
+ "affiliations": ["Fantastic Four", "X-Men"],
9
+ "origin": "Earth",
10
+ "is_villain": false
11
+ },
12
+ {
13
+ "_id": "06ac8173-51a6-404c-8f9a-628de889b1de",
14
+ "name": "Joshua Wang",
15
+ "alias": "paulasmith",
16
+ "powers": ["Telekinesis"],
17
+ "first_appearance": "1987-04-16T00:00:00",
18
+ "affiliations": ["Fantastic Four", "Justice League"],
19
+ "origin": "Earth",
20
+ "is_villain": true
21
+ },
22
+ {
23
+ "_id": "252c203a-0271-4ee7-a3d9-34c9f922b959",
24
+ "name": "Stephen Shaw",
25
+ "alias": "adamskenneth",
26
+ "powers": ["Super Speed", "Flight"],
27
+ "first_appearance": "2004-07-26T00:00:00",
28
+ "affiliations": [],
29
+ "origin": "Atlantis",
30
+ "is_villain": true
31
+ },
32
+ {
33
+ "_id": "bf5b7d04-fe71-4969-84a3-0eb9ed5d2197",
34
+ "name": "Joseph Bowman",
35
+ "alias": "amysalazar",
36
+ "powers": ["Time Manipulation"],
37
+ "first_appearance": "1961-07-03T00:00:00",
38
+ "affiliations": ["Teen Titans", "Avengers"],
39
+ "origin": "Atlantis",
40
+ "is_villain": true
41
+ },
42
+ {
43
+ "_id": "c6271161-bd78-4338-b6ca-88d91f7b853e",
44
+ "name": "Debbie Green",
45
+ "alias": "steventodd",
46
+ "powers": ["Energy Blasts", "Regeneration"],
47
+ "first_appearance": "2021-12-05T00:00:00",
48
+ "affiliations": [],
49
+ "origin": "Asgard",
50
+ "is_villain": false
51
+ },
52
+ {
53
+ "_id": "60223f4c-5908-4f82-a2a3-a5dad1771f7f",
54
+ "name": "Christopher Elliott",
55
+ "alias": "barajasmitchell",
56
+ "powers": ["Flight", "Invisibility", "Telekinesis"],
57
+ "first_appearance": "1947-03-23T00:00:00",
58
+ "affiliations": [],
59
+ "origin": "Earth",
60
+ "is_villain": false
61
+ },
62
+ {
63
+ "_id": "f66a8f7a-9ca3-431a-9ece-aba96be18220",
64
+ "name": "Tammy Murphy",
65
+ "alias": "jessicagill",
66
+ "powers": ["Super Strength", "Telekinesis"],
67
+ "first_appearance": "2000-07-06T00:00:00",
68
+ "affiliations": [],
69
+ "origin": "Mutant",
70
+ "is_villain": false
71
+ },
72
+ {
73
+ "_id": "817c0b11-3eac-4a3a-b55f-203126db060f",
74
+ "name": "Scott Garcia",
75
+ "alias": "whitechristie",
76
+ "powers": ["Telepathy", "Energy Blasts"],
77
+ "first_appearance": "2000-11-22T00:00:00",
78
+ "affiliations": [],
79
+ "origin": "Asgard",
80
+ "is_villain": false
81
+ },
82
+ {
83
+ "_id": "1ee6789f-d774-43b8-87e2-9f6dbac6230a",
84
+ "name": "Julie Goodwin",
85
+ "alias": "robertsmith",
86
+ "powers": ["Telepathy", "Super Speed"],
87
+ "first_appearance": "1953-08-09T00:00:00",
88
+ "affiliations": ["Teen Titans"],
89
+ "origin": "Mutant",
90
+ "is_villain": true
91
+ },
92
+ {
93
+ "_id": "3ab9b55d-94ab-449e-bda9-63b2c633494a",
94
+ "name": "Joshua Hicks",
95
+ "alias": "cynthia32",
96
+ "powers": ["Super Strength", "Invisibility", "Telekinesis"],
97
+ "first_appearance": "1967-07-17T00:00:00",
98
+ "affiliations": [],
99
+ "origin": "Krypton",
100
+ "is_villain": false
101
+ },
102
+ {
103
+ "_id": "51adf385-1f8e-4290-bcc6-ce2808dc461e",
104
+ "name": "Justin Martinez",
105
+ "alias": "janicebrown",
106
+ "powers": ["Super Speed", "Super Strength"],
107
+ "first_appearance": "1973-09-19T00:00:00",
108
+ "affiliations": ["Avengers"],
109
+ "origin": "Mutant",
110
+ "is_villain": true
111
+ },
112
+ {
113
+ "_id": "3a3d934e-f5bb-4238-b8a5-74669a937a14",
114
+ "name": "Holly Green",
115
+ "alias": "ystanley",
116
+ "powers": ["Shapeshifting", "Energy Blasts"],
117
+ "first_appearance": "2013-08-05T00:00:00",
118
+ "affiliations": [],
119
+ "origin": "Krypton",
120
+ "is_villain": true
121
+ },
122
+ {
123
+ "_id": "f044b9fb-82c6-48b3-b8b2-806b0be66466",
124
+ "name": "Margaret Hogan",
125
+ "alias": "wendyconway",
126
+ "powers": ["Super Speed", "Telepathy"],
127
+ "first_appearance": "1944-08-13T00:00:00",
128
+ "affiliations": ["Justice League", "X-Men"],
129
+ "origin": "Earth",
130
+ "is_villain": false
131
+ },
132
+ {
133
+ "_id": "fd50880a-9d0e-43e1-8b20-2830eba8c7dc",
134
+ "name": "Ashley Watkins",
135
+ "alias": "cjohnson",
136
+ "powers": ["Shapeshifting"],
137
+ "first_appearance": "1940-09-13T00:00:00",
138
+ "affiliations": ["Fantastic Four", "Guardians of the Galaxy"],
139
+ "origin": "Mutant",
140
+ "is_villain": true
141
+ },
142
+ {
143
+ "_id": "68036d6b-1780-4352-98ea-2c68cb5c7bff",
144
+ "name": "Tammy Bishop",
145
+ "alias": "geoffreyryan",
146
+ "powers": ["Regeneration"],
147
+ "first_appearance": "1984-11-04T00:00:00",
148
+ "affiliations": ["Fantastic Four", "X-Men"],
149
+ "origin": "Earth",
150
+ "is_villain": true
151
+ },
152
+ {
153
+ "_id": "dbfa84f2-e598-4e67-99a9-5e8c34e5606f",
154
+ "name": "Michelle Valdez",
155
+ "alias": "manuelcobb",
156
+ "powers": ["Regeneration", "Energy Blasts"],
157
+ "first_appearance": "2014-08-04T00:00:00",
158
+ "affiliations": ["Teen Titans"],
159
+ "origin": "Mutant",
160
+ "is_villain": false
161
+ },
162
+ {
163
+ "_id": "ae85885c-13d0-4ae2-b82c-fa53859665d7",
164
+ "name": "Joseph Cook",
165
+ "alias": "scott40",
166
+ "powers": ["Telepathy", "Telekinesis"],
167
+ "first_appearance": "1976-04-01T00:00:00",
168
+ "affiliations": [],
169
+ "origin": "Earth",
170
+ "is_villain": true
171
+ },
172
+ {
173
+ "_id": "0738b98f-4699-4609-9156-fb6a1085a503",
174
+ "name": "Jeremy Rice",
175
+ "alias": "james82",
176
+ "powers": ["Invisibility"],
177
+ "first_appearance": "1977-09-22T00:00:00",
178
+ "affiliations": [],
179
+ "origin": "Asgard",
180
+ "is_villain": false
181
+ },
182
+ {
183
+ "_id": "a072c5df-cc65-4044-ba24-fcc8eaa71b4a",
184
+ "name": "Chad Pham",
185
+ "alias": "smithjennifer",
186
+ "powers": ["Telepathy"],
187
+ "first_appearance": "2001-05-26T00:00:00",
188
+ "affiliations": ["Teen Titans"],
189
+ "origin": "Mars",
190
+ "is_villain": false
191
+ },
192
+ {
193
+ "_id": "d545ec48-680c-4493-8650-d759bedabb7e",
194
+ "name": "Diana Mata",
195
+ "alias": "zwilliamson",
196
+ "powers": ["Super Speed", "Energy Blasts", "Invisibility"],
197
+ "first_appearance": "2010-11-21T00:00:00",
198
+ "affiliations": [],
199
+ "origin": "Mars",
200
+ "is_villain": false
201
+ },
202
+ {
203
+ "_id": "e6bfb576-d65c-40f8-a547-90719578e03c",
204
+ "name": "Maria Wright",
205
+ "alias": "yraymond",
206
+ "powers": ["Flight", "Telepathy"],
207
+ "first_appearance": "1971-04-15T00:00:00",
208
+ "affiliations": ["Avengers", "Teen Titans"],
209
+ "origin": "Asgard",
210
+ "is_villain": true
211
+ },
212
+ {
213
+ "_id": "a2e7b056-0c79-4a2e-83ff-1774b6e186ea",
214
+ "name": "Carlos Burton",
215
+ "alias": "rperkins",
216
+ "powers": ["Super Speed", "Time Manipulation", "Telekinesis"],
217
+ "first_appearance": "1970-01-20T00:00:00",
218
+ "affiliations": ["Teen Titans"],
219
+ "origin": "Mutant",
220
+ "is_villain": true
221
+ },
222
+ {
223
+ "_id": "ec7f8d60-3fef-4329-a7d2-6d89805d758c",
224
+ "name": "Lindsay Anderson",
225
+ "alias": "amycox",
226
+ "powers": ["Super Strength", "Telekinesis"],
227
+ "first_appearance": "1976-04-30T00:00:00",
228
+ "affiliations": [],
229
+ "origin": "Atlantis",
230
+ "is_villain": false
231
+ },
232
+ {
233
+ "_id": "cdc66356-a438-4989-b4d1-315609ec6d91",
234
+ "name": "Larry Hensley",
235
+ "alias": "ylester",
236
+ "powers": ["Super Strength", "Invisibility", "Shapeshifting"],
237
+ "first_appearance": "2019-01-21T00:00:00",
238
+ "affiliations": ["Guardians of the Galaxy", "Avengers"],
239
+ "origin": "Asgard",
240
+ "is_villain": false
241
+ },
242
+ {
243
+ "_id": "0952b684-f887-446f-afcb-71d2ace3fd32",
244
+ "name": "Sandra Moss",
245
+ "alias": "alexandra81",
246
+ "powers": ["Telekinesis", "Super Speed"],
247
+ "first_appearance": "1989-07-28T00:00:00",
248
+ "affiliations": [],
249
+ "origin": "Earth",
250
+ "is_villain": false
251
+ },
252
+ {
253
+ "_id": "9a63c787-3b44-46c2-b927-ffdde6ee10bc",
254
+ "name": "Cynthia Brown",
255
+ "alias": "freed",
256
+ "powers": ["Super Strength", "Energy Blasts"],
257
+ "first_appearance": "2015-06-19T00:00:00",
258
+ "affiliations": ["Fantastic Four"],
259
+ "origin": "Mars",
260
+ "is_villain": false
261
+ },
262
+ {
263
+ "_id": "2b058c3e-e795-4ecd-b5d7-dba6f1a831f6",
264
+ "name": "Brian Vincent",
265
+ "alias": "ghowell",
266
+ "powers": ["Invisibility", "Flight", "Super Speed"],
267
+ "first_appearance": "2012-05-12T00:00:00",
268
+ "affiliations": [],
269
+ "origin": "Asgard",
270
+ "is_villain": false
271
+ },
272
+ {
273
+ "_id": "7a1e38ae-0bc6-41dd-ad61-e7542e6e9d4f",
274
+ "name": "Kevin Humphrey",
275
+ "alias": "mary44",
276
+ "powers": ["Super Strength", "Super Speed", "Telepathy"],
277
+ "first_appearance": "1993-05-10T00:00:00",
278
+ "affiliations": ["Justice League", "Teen Titans"],
279
+ "origin": "Mutant",
280
+ "is_villain": true
281
+ },
282
+ {
283
+ "_id": "c147036a-ab66-4023-a950-1fb81acf7dca",
284
+ "name": "Luis Callahan",
285
+ "alias": "ashleyreeves",
286
+ "powers": ["Telekinesis"],
287
+ "first_appearance": "1943-11-02T00:00:00",
288
+ "affiliations": ["X-Men"],
289
+ "origin": "Krypton",
290
+ "is_villain": false
291
+ },
292
+ {
293
+ "_id": "c42cec2b-156d-481e-993b-aa93637ae76e",
294
+ "name": "Micheal Brown",
295
+ "alias": "lisa85",
296
+ "powers": ["Telepathy", "Flight", "Time Manipulation"],
297
+ "first_appearance": "1983-11-04T00:00:00",
298
+ "affiliations": [],
299
+ "origin": "Krypton",
300
+ "is_villain": false
301
+ },
302
+ {
303
+ "_id": "5bd85192-926b-42f3-bc18-afd40a53753e",
304
+ "name": "James Sanchez",
305
+ "alias": "mary95",
306
+ "powers": ["Energy Blasts", "Telekinesis"],
307
+ "first_appearance": "1999-05-20T00:00:00",
308
+ "affiliations": ["Justice League"],
309
+ "origin": "Atlantis",
310
+ "is_villain": false
311
+ },
312
+ {
313
+ "_id": "4b41e8f8-2cea-4d50-b7b0-ec59fca45367",
314
+ "name": "Richard Cooper",
315
+ "alias": "james85",
316
+ "powers": ["Telekinesis", "Energy Blasts", "Super Speed"],
317
+ "first_appearance": "2021-11-27T00:00:00",
318
+ "affiliations": ["Justice League", "Fantastic Four"],
319
+ "origin": "Mars",
320
+ "is_villain": true
321
+ },
322
+ {
323
+ "_id": "8fd8c7b5-fabd-4021-9aeb-114e64ad06e0",
324
+ "name": "Charles Blair",
325
+ "alias": "barbara60",
326
+ "powers": ["Super Strength"],
327
+ "first_appearance": "2012-05-03T00:00:00",
328
+ "affiliations": [],
329
+ "origin": "Krypton",
330
+ "is_villain": false
331
+ },
332
+ {
333
+ "_id": "830eaa54-4397-4344-8964-2abdd7e2d86d",
334
+ "name": "Virginia Watts",
335
+ "alias": "klane",
336
+ "powers": ["Telekinesis"],
337
+ "first_appearance": "2016-04-27T00:00:00",
338
+ "affiliations": [],
339
+ "origin": "Earth",
340
+ "is_villain": false
341
+ },
342
+ {
343
+ "_id": "495f64a9-123e-46d4-9ddb-21692353a849",
344
+ "name": "Robert Logan",
345
+ "alias": "griffinsean",
346
+ "powers": ["Telepathy"],
347
+ "first_appearance": "2003-07-16T00:00:00",
348
+ "affiliations": [],
349
+ "origin": "Krypton",
350
+ "is_villain": false
351
+ },
352
+ {
353
+ "_id": "e3a96aac-bd9f-49f0-a9ea-efa7d6baf3e9",
354
+ "name": "Cheyenne Powell",
355
+ "alias": "laurenolsen",
356
+ "powers": ["Time Manipulation", "Energy Blasts"],
357
+ "first_appearance": "1964-02-05T00:00:00",
358
+ "affiliations": [],
359
+ "origin": "Atlantis",
360
+ "is_villain": false
361
+ },
362
+ {
363
+ "_id": "2688321c-f5b0-43c8-b95c-060e748ba73b",
364
+ "name": "Benjamin Morris",
365
+ "alias": "sierra18",
366
+ "powers": ["Telekinesis", "Regeneration", "Shapeshifting"],
367
+ "first_appearance": "1964-09-27T00:00:00",
368
+ "affiliations": ["X-Men", "Avengers"],
369
+ "origin": "Mars",
370
+ "is_villain": false
371
+ },
372
+ {
373
+ "_id": "98c4ca66-c7a7-44ad-ad16-5395905a011e",
374
+ "name": "Cristian Oneal",
375
+ "alias": "harrellamy",
376
+ "powers": ["Super Speed"],
377
+ "first_appearance": "1965-01-29T00:00:00",
378
+ "affiliations": [],
379
+ "origin": "Mutant",
380
+ "is_villain": false
381
+ },
382
+ {
383
+ "_id": "e2999d26-1a93-4355-b04f-44f27a3c7f36",
384
+ "name": "Jessica Vargas",
385
+ "alias": "chadherrera",
386
+ "powers": ["Energy Blasts", "Super Strength", "Telekinesis"],
387
+ "first_appearance": "1974-03-29T00:00:00",
388
+ "affiliations": ["X-Men", "Teen Titans"],
389
+ "origin": "Earth",
390
+ "is_villain": true
391
+ },
392
+ {
393
+ "_id": "f3fa712d-2124-433a-b405-c02757fa1503",
394
+ "name": "Angelica Stein",
395
+ "alias": "reedjason",
396
+ "powers": ["Invisibility"],
397
+ "first_appearance": "1981-01-02T00:00:00",
398
+ "affiliations": ["Avengers"],
399
+ "origin": "Earth",
400
+ "is_villain": true
401
+ }
402
+ ]