@noresponse/mcp 0.10.3 → 0.10.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.4
4
+
5
+ * `SDK.assessments.search()`:
6
+ * `request.identifier` **Added**
7
+ * `response.items[].matched_identifier` **Added**
8
+ * `SDK.accounts.search()`:
9
+ * `request.identifier` **Added**
10
+ * `response.items[].matched_identifier` **Added**
11
+
3
12
  ## 0.10.3
4
13
 
5
14
  * `SDK.accounts.search()`:
package/bin/mcp-server.js CHANGED
@@ -48136,9 +48136,9 @@ var init_config = __esm(() => {
48136
48136
  SDK_METADATA = {
48137
48137
  language: "typescript",
48138
48138
  openapiDocVersion: "1",
48139
- sdkVersion: "0.10.3",
48139
+ sdkVersion: "0.10.4",
48140
48140
  genVersion: "internal",
48141
- userAgent: "noresponse-sdk/mcp-typescript 0.10.3 internal 1 @noresponse/mcp"
48141
+ userAgent: "noresponse-sdk/mcp-typescript 0.10.4 internal 1 @noresponse/mcp"
48142
48142
  };
48143
48143
  });
48144
48144
 
@@ -54848,17 +54848,65 @@ Retrieve the account decision at one recorded risk version. The answer uses the
54848
54848
  };
54849
54849
  });
54850
54850
 
54851
+ // src/models/identifiersearchkind.ts
54852
+ var IdentifierSearchKind$zodSchema;
54853
+ var init_identifiersearchkind = __esm(() => {
54854
+ init_zod();
54855
+ IdentifierSearchKind$zodSchema = _enum([
54856
+ "email",
54857
+ "phone",
54858
+ "username"
54859
+ ]);
54860
+ });
54861
+
54862
+ // src/models/match.ts
54863
+ var Match$zodSchema;
54864
+ var init_match = __esm(() => {
54865
+ init_zod();
54866
+ Match$zodSchema = _enum([
54867
+ "exact",
54868
+ "canonical",
54869
+ "mailbox"
54870
+ ]).describe("exact compares the original submitted value; canonical uses identifier-specific normalisation; mailbox explicitly selects the email alias rules used by lists.");
54871
+ });
54872
+
54873
+ // src/models/namespace.ts
54874
+ var Namespace$zodSchema;
54875
+ var init_namespace = __esm(() => {
54876
+ init_zod();
54877
+ Namespace$zodSchema = _enum([
54878
+ "customer"
54879
+ ]).describe("Required for username: the username submitted by this customer in this workspace/environment. It does not name or join a source platform. Omit for email and phone.");
54880
+ });
54881
+
54882
+ // src/models/identifiersearch.ts
54883
+ var IdentifierSearch$zodSchema;
54884
+ var init_identifiersearch = __esm(() => {
54885
+ init_zod();
54886
+ init_identifiersearchkind();
54887
+ init_match();
54888
+ init_namespace();
54889
+ IdentifierSearch$zodSchema = object({
54890
+ kind: IdentifierSearchKind$zodSchema,
54891
+ match: Match$zodSchema.optional().describe("exact compares the original submitted value; canonical uses identifier-specific normalisation; mailbox explicitly selects the email alias rules used by lists."),
54892
+ namespace: Namespace$zodSchema.optional().describe("Required for username: the username submitted by this customer in this workspace/environment. It does not name or join a source platform. Omit for email and phone."),
54893
+ value: string2().describe("The comparison value. Stored original identifiers remain unchanged. An invalid identifier is refused instead of returning an empty result.")
54894
+ }).describe("One customer-submitted identifier. Defaults to exact comparison of the original submitted value. canonical uses the supported identifier normalisation without an ownership claim: email preserves local-part case, NFC-normalises it and lowercases the domain without removing dots or tags; phone uses international E.164 without extensions or an inferred region; username uses NFC and Unicode case folding within the customer namespace. mailbox is email-only and explicitly selects existing list rules: case-insensitive, remove +tag, and ignore local-part dots at gmail.com and googlemail.com; googlemail.com maps to gmail.com. Username requires namespace customer. Email and phone forbid namespace. Source-discovered identifiers and platform handles are not searched. Unsupported kinds, namespaces, modes and invalid values return 400. Search equality does not establish verified ownership or merge accounts.");
54895
+ });
54896
+
54851
54897
  // src/models/accountdirectorysearchrequest.ts
54852
54898
  var AccountDirectorySearchRequest$zodSchema;
54853
54899
  var init_accountdirectorysearchrequest = __esm(() => {
54854
54900
  init_zod();
54901
+ init_identifiersearch();
54855
54902
  AccountDirectorySearchRequest$zodSchema = object({
54856
54903
  account_id: string2().optional().describe("Your own opaque identifier for the account being checked, scoped to your workspace. Use an id you mint, with no direct identifier (email, phone, name or national id) in it. '|' is accepted so an Auth0 user id such as 'auth0|64abc' passes unchanged; '@', '+', '$' and whitespace are refused by the pattern, as is an exact-shape JWT; a hex digest such as a SHA-256 is allowed, because hashing an internal id is a common pseudonymous scheme. A value such as '07700900123' or 'jane.doe.gmail.com' cannot be told apart from an opaque id. It travels in bodies, and in a URL only as the path segment of GET /v1/accounts/{account_id} and its /assessments. An assessment requested by a provider hook at pre_registration, which has no account yet, carries the server-issued account_id pre: followed by its assessment_id."),
54857
54904
  cursor: string2().optional().describe("Opaque, expiring cursor bound to this environment, operation and every filter. Keep the filters unchanged."),
54858
54905
  email: string2().optional().describe("Assessments of every account that one of its retained admitted assessments sent this mailbox as identifiers.email, matched as lists match an email entry: case-insensitive, a +tag removed and, at gmail.com and googlemail.com, the dots of the local part ignored. Only assessments stored since email list matching began carry the mailbox. An address that is not a valid mailbox is refused with 400."),
54906
+ identifier: IdentifierSearch$zodSchema.optional().describe("One customer-submitted identifier. Defaults to exact comparison of the original submitted value. canonical uses the supported identifier normalisation without an ownership claim: email preserves local-part case, NFC-normalises it and lowercases the domain without removing dots or tags; phone uses international E.164 without extensions or an inferred region; username uses NFC and Unicode case folding within the customer namespace. mailbox is email-only and explicitly selects existing list rules: case-insensitive, remove +tag, and ignore local-part dots at gmail.com and googlemail.com; googlemail.com maps to gmail.com. Username requires namespace customer. Email and phone forbid namespace. Source-discovered identifiers and platform handles are not searched. Unsupported kinds, namespaces, modes and invalid values return 400. Search equality does not establish verified ownership or merge accounts."),
54859
54907
  limit: int().default(25),
54860
54908
  needs_action: boolean2().default(false).describe("Select accounts with a retained open or in-progress review, or a current review/block account decision with no retained effective account outcome. The server applies this filter before counting and pagination. Requires reviews.read as well as history.read for console members; API keys additionally require management.")
54861
- }).describe("Bounded distinct-account search for a single authenticated workspace/environment. Email matches any retained admitted assessment of an account, using assessment search's canonical mailbox rules. No assessment history download is required.");
54909
+ }).describe("Bounded distinct-account search for one authenticated workspace/environment. identifier matches any retained admitted assessment of an account, including historical submitted values. email preserves the legacy canonical-mailbox filter. identifier and email cannot be combined. All other filters combine using AND. Typed identifier search uses stable opaque account order; ordinary and legacy email searches retain newest-seen ordering. Pages are live, not a cross-page snapshot. Requires history or investigate authority and identifier-read permission for identifier or email filtering.");
54862
54910
  });
54863
54911
 
54864
54912
  // src/funcs/accountsSearch.ts
@@ -54952,9 +55000,9 @@ var init_accountsSearch2 = __esm(() => {
54952
55000
  };
54953
55001
  tool$accountsSearch = {
54954
55002
  name: "search_accounts",
54955
- description: `Search distinct accounts by email or account ID
55003
+ description: `Search distinct accounts by submitted identifier or account ID
54956
55004
 
54957
- Search distinct accounts observed in retained assessments in this environment. Match an exact account_id or canonical email; an email matches any retained assessment belonging to the account. Set needs_action to select accounts with an open or in-progress retained review, or a current review/block decision without an effective retained outcome. This filter applies before pagination and counting, adds waiting_for reasons to each row and requires management scope as well as history or investigate access. The response contains one row per account with its newest retained assessment, current decision when available, per-account assessment count, and total distinct-account count. Send next_cursor with unchanged filters to continue. Totals are exact below 10000 and capped at 10000. Results are live across pages. Requires history access and identifier access for email. Read-only and safe to retry.`,
55005
+ Search distinct accounts observed in retained assessments in this environment. identifier matches an exact, canonical or explicitly selected mailbox form of a submitted email, phone or customer-namespace username. It matches historical retained inputs and returns matched_identifier with the original value and matching assessment. Each row has its newest retained assessment, current account decision when available, retained assessment count, and total distinct-account count. identifier and legacy email are mutually exclusive; account_id and needs_action combine with either using AND. Set needs_action to select accounts with a retained open or in-progress review, or a current review/block account decision without an effective retained account outcome. This filter applies before counting and pagination and adds waiting_for reasons. Current decisions include account list overrides and shared-key scoring and preserve admission holds. Typed identifier search uses stable opaque account order; ordinary and legacy email searches retain newest-seen order. Results are live across pages; each page's items and total share a database snapshot, while current account risk is read separately. Cursors are expiring and bound to scope, operation and filters. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier or email filtering. needs_action additionally requires management scope. Source-discovered associations are not searched and equality is not verified ownership.`,
54958
55006
  annotations: {
54959
55007
  title: "Search retained accounts by identifier",
54960
55008
  destructiveHint: false,
@@ -56391,6 +56439,7 @@ var init_assessmentsearchrequest = __esm(() => {
56391
56439
  init_band();
56392
56440
  init_decision();
56393
56441
  init_flow();
56442
+ init_identifiersearch();
56394
56443
  init_impact();
56395
56444
  init_lane();
56396
56445
  init_listmatch();
@@ -56409,6 +56458,7 @@ var init_assessmentsearchrequest = __esm(() => {
56409
56458
  email: string2().optional().describe("Assessments of every account that one of its retained admitted assessments sent this mailbox as identifiers.email, matched as lists match an email entry: case-insensitive, a +tag removed and, at gmail.com and googlemail.com, the dots of the local part ignored. Only assessments stored since email list matching began carry the mailbox. An address that is not a valid mailbox is refused with 400."),
56410
56459
  flow: Flow$zodSchema.optional().describe("The event an assessment is made for: account_creation (a user creates an account), login (a user returns to an existing account) or purchase (a payment or a credit grant). The account's risk is reported with the decision for this flow."),
56411
56460
  from: string2(),
56461
+ identifier: IdentifierSearch$zodSchema.optional().describe("One customer-submitted identifier. Defaults to exact comparison of the original submitted value. canonical uses the supported identifier normalisation without an ownership claim: email preserves local-part case, NFC-normalises it and lowercases the domain without removing dots or tags; phone uses international E.164 without extensions or an inferred region; username uses NFC and Unicode case folding within the customer namespace. mailbox is email-only and explicitly selects existing list rules: case-insensitive, remove +tag, and ignore local-part dots at gmail.com and googlemail.com; googlemail.com maps to gmail.com. Username requires namespace customer. Email and phone forbid namespace. Source-discovered identifiers and platform handles are not searched. Unsupported kinds, namespaces, modes and invalid values return 400. Search equality does not establish verified ownership or merge accounts."),
56412
56462
  impact: Impact$zodSchema.optional().describe("The selected reason's served impact band. Requires reason."),
56413
56463
  lane: Lane$zodSchema.optional().describe("An evidence lane: accounts (account presence for email and username), phone, breach, domain (the email domain's registration) and ip."),
56414
56464
  limit: int().default(20),
@@ -56421,7 +56471,7 @@ var init_assessmentsearchrequest = __esm(() => {
56421
56471
  score_min: int().optional().describe("Inclusive lower score bound. Pending answers without a score do not match."),
56422
56472
  status: Status$zodSchema.optional().describe("Processing state, separate from evidence coverage. complete: final; nothing is still running, but unsupported, failed or unanswered lanes remain in incomplete_sources. partial: a recommendation exists and evidence is incomplete; assessment_url identifies continuing work when present. pending: no recommendation yet; poll or wait for the webhook. Finished processing does not mean all sources answered."),
56423
56473
  to: string2()
56424
- }).describe("Search retained assessments created in [from,to), over at most 366 days. Filters use each assessment decision, rather than the current account decision. Results can change between pages. Keep the assessment version to retrieve the exact decision later. This read does not require an idempotency key.");
56474
+ }).describe("Search retained assessments created in [from,to), at most 366 days. identifier matches the submitted value of each returned assessment directly. The legacy email filter keeps its account-wide mailbox semantics and cannot be combined with identifier. Other filters combine using AND and describe assessment decisions, separate from current account decisions. Results use newest-created order with an assessment-ID tie break and are live, not a snapshot across pages. Requires history or investigate authority; identifier/email filtering also requires identifier-read permission. Detailed response mode additionally requires detailed permission. No Idempotency-Key.");
56425
56475
  });
56426
56476
 
56427
56477
  // src/funcs/assessmentsSearch.ts
@@ -56517,7 +56567,7 @@ var init_assessmentsSearch2 = __esm(() => {
56517
56567
  name: "search_assessments",
56518
56568
  description: `Search assessments across this environment
56519
56569
 
56520
- Search retained assessments created in [from,to), over at most 366 days. Filters use each assessment decision, rather than the current account decision. Results can change between pages. Keep the assessment version to retrieve the exact decision later. Each item's detail.identifiers holds the identifiers its assessment was sent, exactly as received, and first_decision holds the decision of its first answer. email finds every assessment of the accounts that sent a mailbox, matched as lists match it. changed keeps the assessments a later revision changed. total counts every match, exactly up to 10000. This read does not require an idempotency key.`,
56570
+ Search retained assessments created in [from,to), at most 366 days. identifier directly matches that assessment's submitted email, phone or customer-namespace username using exact, canonical or explicitly selected email mailbox matching. matched_identifier explains the original value and match basis. Legacy email keeps its account-wide mailbox semantics and cannot be combined with identifier. Other filters combine using AND and describe assessment decisions, separate from current account decisions. Each item carries the original submitted identifiers and its first_decision when available. Newest-created order has an assessment-ID tie break. Results are live across pages; each page's total and items use one database snapshot. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier/email filters; detailed mode also requires detailed permission. No Idempotency-Key.`,
56521
56571
  annotations: {
56522
56572
  title: "Search assessments in this environment",
56523
56573
  destructiveHint: false,
@@ -69694,7 +69744,7 @@ endpoint.verification sends a signed challenge now and answers whether the endpo
69694
69744
  function createMCPServer(deps) {
69695
69745
  const server = new McpServer({
69696
69746
  name: "NoResponse",
69697
- version: "0.10.3"
69747
+ version: "0.10.4"
69698
69748
  });
69699
69749
  const getClient = deps.getSDK || (() => new NoResponseCore({
69700
69750
  security: deps.security,
@@ -69960,7 +70010,7 @@ Count this environment's assessments created in [from,to) by UTC hour, or by day
69960
70010
  name: "search_assessments",
69961
70011
  description: `Search assessments across this environment
69962
70012
 
69963
- Search retained assessments created in [from,to), over at most 366 days. Filters use each assessment decision, rather than the current account decision. Results can change between pages. Keep the assessment version to retrieve the exact decision later. Each item's detail.identifiers holds the identifiers its assessment was sent, exactly as received, and first_decision holds the decision of its first answer. email finds every assessment of the accounts that sent a mailbox, matched as lists match it. changed keeps the assessments a later revision changed. total counts every match, exactly up to 10000. This read does not require an idempotency key.`
70013
+ Search retained assessments created in [from,to), at most 366 days. identifier directly matches that assessment's submitted email, phone or customer-namespace username using exact, canonical or explicitly selected email mailbox matching. matched_identifier explains the original value and match basis. Legacy email keeps its account-wide mailbox semantics and cannot be combined with identifier. Other filters combine using AND and describe assessment decisions, separate from current account decisions. Each item carries the original submitted identifiers and its first_decision when available. Newest-created order has an assessment-ID tie break. Results are live across pages; each page's total and items use one database snapshot. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier/email filters; detailed mode also requires detailed permission. No Idempotency-Key.`
69964
70014
  },
69965
70015
  {
69966
70016
  name: "get_assessment_version",
@@ -70060,9 +70110,9 @@ List retained immutable risk decisions for one account with an authenticated cur
70060
70110
  },
70061
70111
  {
70062
70112
  name: "search_accounts",
70063
- description: `Search distinct accounts by email or account ID
70113
+ description: `Search distinct accounts by submitted identifier or account ID
70064
70114
 
70065
- Search distinct accounts observed in retained assessments in this environment. Match an exact account_id or canonical email; an email matches any retained assessment belonging to the account. Set needs_action to select accounts with an open or in-progress retained review, or a current review/block decision without an effective retained outcome. This filter applies before pagination and counting, adds waiting_for reasons to each row and requires management scope as well as history or investigate access. The response contains one row per account with its newest retained assessment, current decision when available, per-account assessment count, and total distinct-account count. Send next_cursor with unchanged filters to continue. Totals are exact below 10000 and capped at 10000. Results are live across pages. Requires history access and identifier access for email. Read-only and safe to retry.`
70115
+ Search distinct accounts observed in retained assessments in this environment. identifier matches an exact, canonical or explicitly selected mailbox form of a submitted email, phone or customer-namespace username. It matches historical retained inputs and returns matched_identifier with the original value and matching assessment. Each row has its newest retained assessment, current account decision when available, retained assessment count, and total distinct-account count. identifier and legacy email are mutually exclusive; account_id and needs_action combine with either using AND. Set needs_action to select accounts with a retained open or in-progress review, or a current review/block account decision without an effective retained account outcome. This filter applies before counting and pagination and adds waiting_for reasons. Current decisions include account list overrides and shared-key scoring and preserve admission holds. Typed identifier search uses stable opaque account order; ordinary and legacy email searches retain newest-seen order. Results are live across pages; each page's items and total share a database snapshot, while current account risk is read separately. Cursors are expiring and bound to scope, operation and filters. Totals are exact below 10000 and capped at 10000. Requires history or investigate authority and identifier-read permission for identifier or email filtering. needs_action additionally requires management scope. Source-discovered associations are not searched and equality is not verified ownership.`
70066
70116
  },
70067
70117
  {
70068
70118
  name: "list_keys",
@@ -78983,7 +79033,7 @@ var routes = buildRouteMap({
78983
79033
  var app = buildApplication(routes, {
78984
79034
  name: "mcp",
78985
79035
  versionInfo: {
78986
- currentVersion: "0.10.3"
79036
+ currentVersion: "0.10.4"
78987
79037
  }
78988
79038
  });
78989
79039
  run(app, process3.argv.slice(2), buildContext(process3));
@@ -78991,5 +79041,5 @@ export {
78991
79041
  app
78992
79042
  };
78993
79043
 
78994
- //# debugId=16531E01D8A2C65564756E2164756E21
79044
+ //# debugId=5019228518CA43EA64756E2164756E21
78995
79045
  //# sourceMappingURL=mcp-server.js.map