@altura_ma/onemcp 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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +176 -0
  3. package/dist/cache/index.d.ts +12 -0
  4. package/dist/cache/index.d.ts.map +1 -0
  5. package/dist/cache/index.js +44 -0
  6. package/dist/cache/index.js.map +1 -0
  7. package/dist/connectors/ban.d.ts +15 -0
  8. package/dist/connectors/ban.d.ts.map +1 -0
  9. package/dist/connectors/ban.js +46 -0
  10. package/dist/connectors/ban.js.map +1 -0
  11. package/dist/connectors/base.d.ts +18 -0
  12. package/dist/connectors/base.d.ts.map +1 -0
  13. package/dist/connectors/base.js +10 -0
  14. package/dist/connectors/base.js.map +1 -0
  15. package/dist/connectors/bodacc.d.ts +11 -0
  16. package/dist/connectors/bodacc.d.ts.map +1 -0
  17. package/dist/connectors/bodacc.js +47 -0
  18. package/dist/connectors/bodacc.js.map +1 -0
  19. package/dist/connectors/companies-house.d.ts +13 -0
  20. package/dist/connectors/companies-house.d.ts.map +1 -0
  21. package/dist/connectors/companies-house.js +104 -0
  22. package/dist/connectors/companies-house.js.map +1 -0
  23. package/dist/connectors/dvf.d.ts +13 -0
  24. package/dist/connectors/dvf.d.ts.map +1 -0
  25. package/dist/connectors/dvf.js +51 -0
  26. package/dist/connectors/dvf.js.map +1 -0
  27. package/dist/connectors/epo-ops.d.ts +37 -0
  28. package/dist/connectors/epo-ops.d.ts.map +1 -0
  29. package/dist/connectors/epo-ops.js +100 -0
  30. package/dist/connectors/epo-ops.js.map +1 -0
  31. package/dist/connectors/france-travail.d.ts +47 -0
  32. package/dist/connectors/france-travail.d.ts.map +1 -0
  33. package/dist/connectors/france-travail.js +89 -0
  34. package/dist/connectors/france-travail.js.map +1 -0
  35. package/dist/connectors/georisques.d.ts +7 -0
  36. package/dist/connectors/georisques.d.ts.map +1 -0
  37. package/dist/connectors/georisques.js +68 -0
  38. package/dist/connectors/georisques.js.map +1 -0
  39. package/dist/connectors/gleif.d.ts +9 -0
  40. package/dist/connectors/gleif.d.ts.map +1 -0
  41. package/dist/connectors/gleif.js +63 -0
  42. package/dist/connectors/gleif.js.map +1 -0
  43. package/dist/connectors/index.d.ts +29 -0
  44. package/dist/connectors/index.d.ts.map +1 -0
  45. package/dist/connectors/index.js +28 -0
  46. package/dist/connectors/index.js.map +1 -0
  47. package/dist/connectors/inpi-rne.d.ts +19 -0
  48. package/dist/connectors/inpi-rne.d.ts.map +1 -0
  49. package/dist/connectors/inpi-rne.js +107 -0
  50. package/dist/connectors/inpi-rne.js.map +1 -0
  51. package/dist/connectors/insee-sirene.d.ts +12 -0
  52. package/dist/connectors/insee-sirene.d.ts.map +1 -0
  53. package/dist/connectors/insee-sirene.js +104 -0
  54. package/dist/connectors/insee-sirene.js.map +1 -0
  55. package/dist/connectors/recherche-entreprises.d.ts +20 -0
  56. package/dist/connectors/recherche-entreprises.d.ts.map +1 -0
  57. package/dist/connectors/recherche-entreprises.js +135 -0
  58. package/dist/connectors/recherche-entreprises.js.map +1 -0
  59. package/dist/connectors/vies.d.ts +10 -0
  60. package/dist/connectors/vies.d.ts.map +1 -0
  61. package/dist/connectors/vies.js +39 -0
  62. package/dist/connectors/vies.js.map +1 -0
  63. package/dist/http.d.ts +3 -0
  64. package/dist/http.d.ts.map +1 -0
  65. package/dist/http.js +74 -0
  66. package/dist/http.js.map +1 -0
  67. package/dist/index.d.ts +3 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +16 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/schemas/canonical.d.ts +1545 -0
  72. package/dist/schemas/canonical.d.ts.map +1 -0
  73. package/dist/schemas/canonical.js +120 -0
  74. package/dist/schemas/canonical.js.map +1 -0
  75. package/dist/server.d.ts +6 -0
  76. package/dist/server.d.ts.map +1 -0
  77. package/dist/server.js +126 -0
  78. package/dist/server.js.map +1 -0
  79. package/dist/tools/company-layer2.d.ts +3 -0
  80. package/dist/tools/company-layer2.d.ts.map +1 -0
  81. package/dist/tools/company-layer2.js +84 -0
  82. package/dist/tools/company-layer2.js.map +1 -0
  83. package/dist/tools/company.d.ts +3 -0
  84. package/dist/tools/company.d.ts.map +1 -0
  85. package/dist/tools/company.js +119 -0
  86. package/dist/tools/company.js.map +1 -0
  87. package/dist/tools/geo.d.ts +3 -0
  88. package/dist/tools/geo.d.ts.map +1 -0
  89. package/dist/tools/geo.js +59 -0
  90. package/dist/tools/geo.js.map +1 -0
  91. package/dist/tools/identity.d.ts +3 -0
  92. package/dist/tools/identity.d.ts.map +1 -0
  93. package/dist/tools/identity.js +60 -0
  94. package/dist/tools/identity.js.map +1 -0
  95. package/dist/tools/index.d.ts +14 -0
  96. package/dist/tools/index.d.ts.map +1 -0
  97. package/dist/tools/index.js +22 -0
  98. package/dist/tools/index.js.map +1 -0
  99. package/dist/tools/jobs.d.ts +3 -0
  100. package/dist/tools/jobs.d.ts.map +1 -0
  101. package/dist/tools/jobs.js +63 -0
  102. package/dist/tools/jobs.js.map +1 -0
  103. package/dist/tools/legal.d.ts +3 -0
  104. package/dist/tools/legal.d.ts.map +1 -0
  105. package/dist/tools/legal.js +48 -0
  106. package/dist/tools/legal.js.map +1 -0
  107. package/dist/tools/patents.d.ts +3 -0
  108. package/dist/tools/patents.d.ts.map +1 -0
  109. package/dist/tools/patents.js +51 -0
  110. package/dist/tools/patents.js.map +1 -0
  111. package/dist/tools/realestate.d.ts +3 -0
  112. package/dist/tools/realestate.d.ts.map +1 -0
  113. package/dist/tools/realestate.js +30 -0
  114. package/dist/tools/realestate.js.map +1 -0
  115. package/dist/tools/sources.d.ts +3 -0
  116. package/dist/tools/sources.d.ts.map +1 -0
  117. package/dist/tools/sources.js +17 -0
  118. package/dist/tools/sources.js.map +1 -0
  119. package/dist/tools/types.d.ts +10 -0
  120. package/dist/tools/types.d.ts.map +1 -0
  121. package/dist/tools/types.js +4 -0
  122. package/dist/tools/types.js.map +1 -0
  123. package/dist/utils/env.d.ts +3 -0
  124. package/dist/utils/env.d.ts.map +1 -0
  125. package/dist/utils/env.js +14 -0
  126. package/dist/utils/env.js.map +1 -0
  127. package/dist/utils/http.d.ts +17 -0
  128. package/dist/utils/http.d.ts.map +1 -0
  129. package/dist/utils/http.js +62 -0
  130. package/dist/utils/http.js.map +1 -0
  131. package/dist/utils/oauth.d.ts +11 -0
  132. package/dist/utils/oauth.d.ts.map +1 -0
  133. package/dist/utils/oauth.js +31 -0
  134. package/dist/utils/oauth.js.map +1 -0
  135. package/dist/worker.d.ts +16 -0
  136. package/dist/worker.d.ts.map +1 -0
  137. package/dist/worker.js +185 -0
  138. package/dist/worker.js.map +1 -0
  139. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.d.ts","sourceRoot":"","sources":["../../src/schemas/canonical.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { z } from "zod";
2
+ export const ProvenanceSchema = z.object({
3
+ source: z.string().describe("Identifiant de la source (ex: recherche-entreprises, inpi, insee)"),
4
+ source_url: z.string().optional(),
5
+ fetched_at: z.string().describe("ISO 8601 timestamp"),
6
+ license: z.string().describe("Licence des données (ex: Licence Ouverte 2.0, ODbL)"),
7
+ });
8
+ export const AddressSchema = z.object({
9
+ full: z.string().optional(),
10
+ street: z.string().optional(),
11
+ postal_code: z.string().optional(),
12
+ city: z.string().optional(),
13
+ insee_code: z.string().optional(),
14
+ country: z.string().default("FR"),
15
+ latitude: z.number().optional(),
16
+ longitude: z.number().optional(),
17
+ });
18
+ export const EstablishmentSchema = z.object({
19
+ siret: z.string().regex(/^\d{14}$/),
20
+ is_headquarters: z.boolean().optional(),
21
+ active: z.boolean().optional(),
22
+ naf_code: z.string().optional(),
23
+ naf_label: z.string().optional(),
24
+ address: AddressSchema.optional(),
25
+ employee_range: z.string().optional(),
26
+ created_at: z.string().optional(),
27
+ });
28
+ export const OfficerSchema = z.object({
29
+ name: z.string(),
30
+ role: z.string().optional(),
31
+ type: z.enum(["person", "company"]).optional(),
32
+ birth_date_partial: z.string().optional().describe("YYYY-MM only, jamais le jour complet"),
33
+ nationality: z.string().optional(),
34
+ });
35
+ export const FinancialsSchema = z.object({
36
+ fiscal_year: z.number().optional(),
37
+ revenue_eur: z.number().optional(),
38
+ net_income_eur: z.number().optional(),
39
+ employees: z.number().optional(),
40
+ filed_at: z.string().optional(),
41
+ });
42
+ export const CompanySchema = z.object({
43
+ siren: z.string().regex(/^\d{9}$/),
44
+ legal_name: z.string().optional(),
45
+ trade_name: z.string().optional(),
46
+ legal_form: z.string().optional(),
47
+ legal_form_code: z.string().optional(),
48
+ vat_number: z.string().optional(),
49
+ active: z.boolean().optional(),
50
+ created_at: z.string().optional(),
51
+ closed_at: z.string().optional(),
52
+ naf_code: z.string().optional(),
53
+ naf_label: z.string().optional(),
54
+ registered_address: AddressSchema.optional(),
55
+ headquarter: EstablishmentSchema.optional(),
56
+ establishments: z.array(EstablishmentSchema).optional(),
57
+ officers: z.array(OfficerSchema).optional(),
58
+ financials: z.array(FinancialsSchema).optional(),
59
+ provenance: z.array(ProvenanceSchema),
60
+ _raw: z.unknown().optional(),
61
+ });
62
+ export const SearchResultSchema = z.object({
63
+ query: z.string(),
64
+ total: z.number(),
65
+ page: z.number().default(1),
66
+ per_page: z.number().default(10),
67
+ results: z.array(CompanySchema),
68
+ provenance: z.array(ProvenanceSchema),
69
+ });
70
+ export const VatValidationSchema = z.object({
71
+ vat_number: z.string(),
72
+ country_code: z.string().length(2),
73
+ valid: z.boolean(),
74
+ legal_name: z.string().optional(),
75
+ address: z.string().optional(),
76
+ checked_at: z.string(),
77
+ provenance: z.array(ProvenanceSchema),
78
+ });
79
+ export const LeiRecordSchema = z.object({
80
+ lei: z.string(),
81
+ legal_name: z.string().optional(),
82
+ status: z.string().optional(),
83
+ jurisdiction: z.string().optional(),
84
+ legal_form: z.string().optional(),
85
+ registered_address: AddressSchema.optional(),
86
+ parent_lei: z.string().optional(),
87
+ registration_status: z.string().optional(),
88
+ next_renewal_date: z.string().optional(),
89
+ provenance: z.array(ProvenanceSchema),
90
+ });
91
+ export const RiskReportSchema = z.object({
92
+ address: AddressSchema,
93
+ risks: z.array(z.object({
94
+ type: z.string(),
95
+ label: z.string(),
96
+ severity: z.enum(["low", "medium", "high", "unknown"]).default("unknown"),
97
+ description: z.string().optional(),
98
+ })),
99
+ provenance: z.array(ProvenanceSchema),
100
+ });
101
+ export const RealEstateTransactionSchema = z.object({
102
+ date: z.string().optional(),
103
+ type: z.string().optional(),
104
+ price_eur: z.number().optional(),
105
+ surface_built_m2: z.number().optional(),
106
+ surface_land_m2: z.number().optional(),
107
+ rooms: z.number().optional(),
108
+ property_type: z.string().optional(),
109
+ address: AddressSchema.optional(),
110
+ });
111
+ export const LegalAnnouncementSchema = z.object({
112
+ id: z.string(),
113
+ type: z.string(),
114
+ published_at: z.string(),
115
+ company_siren: z.string().optional(),
116
+ company_name: z.string().optional(),
117
+ content: z.string().optional(),
118
+ source_url: z.string().optional(),
119
+ });
120
+ //# sourceMappingURL=canonical.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../src/schemas/canonical.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ declare const SERVER_NAME = "mcp-business-fr";
3
+ declare const SERVER_VERSION = "0.1.0";
4
+ export declare function createServer(): Server;
5
+ export { SERVER_NAME, SERVER_VERSION };
6
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AASnE,QAAA,MAAM,WAAW,oBAAoB,CAAC;AACtC,QAAA,MAAM,cAAc,UAAU,CAAC;AAE/B,wBAAgB,YAAY,IAAI,MAAM,CAiErC;AA0DD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC"}
package/dist/server.js ADDED
@@ -0,0 +1,126 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
3
+ import { z } from "zod";
4
+ import { allTools } from "./tools/index.js";
5
+ const SERVER_NAME = "mcp-business-fr";
6
+ const SERVER_VERSION = "0.1.0";
7
+ export function createServer() {
8
+ const server = new Server({
9
+ name: SERVER_NAME,
10
+ version: SERVER_VERSION,
11
+ }, {
12
+ capabilities: {
13
+ tools: {},
14
+ },
15
+ });
16
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
17
+ return {
18
+ tools: allTools.map((t) => ({
19
+ name: t.name,
20
+ description: t.description,
21
+ inputSchema: zodToJsonSchema(t.inputSchema),
22
+ })),
23
+ };
24
+ });
25
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
26
+ const tool = allTools.find((t) => t.name === request.params.name);
27
+ if (!tool) {
28
+ return {
29
+ isError: true,
30
+ content: [
31
+ {
32
+ type: "text",
33
+ text: `Tool inconnu: ${request.params.name}. Tools disponibles: ${allTools
34
+ .map((t) => t.name)
35
+ .join(", ")}`,
36
+ },
37
+ ],
38
+ };
39
+ }
40
+ try {
41
+ const parsed = tool.inputSchema.parse(request.params.arguments ?? {});
42
+ const result = await tool.handler(parsed);
43
+ return {
44
+ content: [
45
+ {
46
+ type: "text",
47
+ text: JSON.stringify(result, null, 2),
48
+ },
49
+ ],
50
+ };
51
+ }
52
+ catch (err) {
53
+ const message = err instanceof Error ? err.message : String(err);
54
+ return {
55
+ isError: true,
56
+ content: [
57
+ {
58
+ type: "text",
59
+ text: `Erreur lors de l'exécution de ${tool.name}: ${message}`,
60
+ },
61
+ ],
62
+ };
63
+ }
64
+ });
65
+ return server;
66
+ }
67
+ /**
68
+ * Convertit un schéma Zod en JSON Schema minimal compatible avec le protocole MCP.
69
+ * Implémentation locale pour éviter une dépendance externe — couvre les cas utilisés ici.
70
+ */
71
+ function zodToJsonSchema(schema) {
72
+ if (schema instanceof z.ZodObject) {
73
+ const shape = schema.shape;
74
+ const properties = {};
75
+ const required = [];
76
+ for (const [key, value] of Object.entries(shape)) {
77
+ properties[key] = zodToJsonSchema(value);
78
+ if (!(value instanceof z.ZodOptional) && !(value instanceof z.ZodDefault)) {
79
+ required.push(key);
80
+ }
81
+ }
82
+ const out = { type: "object", properties };
83
+ if (required.length > 0)
84
+ out.required = required;
85
+ return out;
86
+ }
87
+ if (schema instanceof z.ZodString) {
88
+ const out = { type: "string" };
89
+ const desc = schema.description;
90
+ if (desc)
91
+ out.description = desc;
92
+ return out;
93
+ }
94
+ if (schema instanceof z.ZodNumber) {
95
+ const out = { type: "number" };
96
+ const desc = schema.description;
97
+ if (desc)
98
+ out.description = desc;
99
+ return out;
100
+ }
101
+ if (schema instanceof z.ZodBoolean) {
102
+ return { type: "boolean" };
103
+ }
104
+ if (schema instanceof z.ZodEnum) {
105
+ return { type: "string", enum: schema.options };
106
+ }
107
+ if (schema instanceof z.ZodArray) {
108
+ return { type: "array", items: zodToJsonSchema(schema.element) };
109
+ }
110
+ if (schema instanceof z.ZodOptional) {
111
+ return zodToJsonSchema(schema.unwrap());
112
+ }
113
+ if (schema instanceof z.ZodDefault) {
114
+ const inner = zodToJsonSchema(schema.removeDefault());
115
+ return { ...inner, default: schema._def.defaultValue() };
116
+ }
117
+ if (schema instanceof z.ZodEffects) {
118
+ return zodToJsonSchema(schema.innerType());
119
+ }
120
+ if (schema instanceof z.ZodNullable) {
121
+ return zodToJsonSchema(schema.unwrap());
122
+ }
123
+ return {};
124
+ }
125
+ export { SERVER_NAME, SERVER_VERSION };
126
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,WAAW,GAAG,iBAAiB,CAAC;AACtC,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;KACxB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;aAC5C,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,wBAAwB,QAAQ;6BACvE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;6BAClB,IAAI,CAAC,IAAI,CAAC,EAAE;qBAChB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBACtC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,iCAAiC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;qBAC/D;iBACF;aACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,MAAoB;IAC3C,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAqC,CAAC;QAC3D,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,UAAU,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1E,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QACpE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACjD,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,GAAG,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,IAAI,IAAI;YAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QAClC,MAAM,GAAG,GAA4B,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC;QAChC,IAAI,IAAI;YAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACtD,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACnC,OAAO,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,MAAM,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type AnyTool } from "./types.js";
2
+ export declare const companyLayer2Tools: AnyTool[];
3
+ //# sourceMappingURL=company-layer2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company-layer2.d.ts","sourceRoot":"","sources":["../../src/tools/company-layer2.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAoFtD,eAAO,MAAM,kBAAkB,EAAE,OAAO,EAA2C,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { z } from "zod";
2
+ import { connectors } from "../connectors/index.js";
3
+ import { defineTool } from "./types.js";
4
+ const companySirene = defineTool({
5
+ name: "company_sirene",
6
+ description: "Fiche entreprise ou établissement depuis le référentiel officiel INSEE Sirene (mise à jour quotidienne). " +
7
+ "Plus précis que company_get pour les données officielles : forme juridique, codes NAF, historique des changements. " +
8
+ "Requiert les variables d'environnement INSEE_CLIENT_ID et INSEE_CLIENT_SECRET (compte gratuit sur api.insee.fr).",
9
+ inputSchema: z.object({
10
+ identifier: z
11
+ .string()
12
+ .regex(/^\d{9}$|^\d{14}$/)
13
+ .describe("SIREN (9 chiffres) ou SIRET (14 chiffres)."),
14
+ }),
15
+ handler: async (input) => {
16
+ if (input.identifier.length === 9) {
17
+ const result = await connectors.inseeSirene.getBySiren(input.identifier);
18
+ if (!result)
19
+ return { found: false, identifier: input.identifier };
20
+ return { found: true, ...result };
21
+ }
22
+ const result = await connectors.inseeSirene.getBySiret(input.identifier);
23
+ if (!result)
24
+ return { found: false, identifier: input.identifier };
25
+ return { found: true, ...result };
26
+ },
27
+ });
28
+ const companyRne = defineTool({
29
+ name: "company_rne",
30
+ description: "Dossier complet INPI Registre National des Entreprises : statuts déposés, actes, comptes annuels, bénéficiaires effectifs (UBO). " +
31
+ "Source KYC/AML de référence. Requiert INPI_USERNAME et INPI_PASSWORD (compte gratuit sur registre-national-entreprises.inpi.fr).",
32
+ inputSchema: z.object({
33
+ siren: z.string().regex(/^\d{9}$/).describe("SIREN à 9 chiffres."),
34
+ include_beneficiaires: z
35
+ .boolean()
36
+ .default(true)
37
+ .optional()
38
+ .describe("Inclure les bénéficiaires effectifs (UBO)."),
39
+ }),
40
+ handler: async (input) => {
41
+ const [company, beneficiaires] = await Promise.all([
42
+ connectors.inpiRne.getBySiren(input.siren),
43
+ (input.include_beneficiaires ?? true)
44
+ ? connectors.inpiRne.getBeneficiairesEffectifs(input.siren).catch((err) => ({
45
+ error: String(err),
46
+ }))
47
+ : Promise.resolve(null),
48
+ ]);
49
+ if (!company)
50
+ return { found: false, siren: input.siren };
51
+ return { found: true, company, beneficiaires };
52
+ },
53
+ });
54
+ const companyUk = defineTool({
55
+ name: "company_uk",
56
+ description: "Recherche et fiche de sociétés britanniques via Companies House UK. " +
57
+ "Couvre England, Wales, Scotland, Northern Ireland. Retourne dirigeants actifs, adresse enregistrée, statut, SIC codes. " +
58
+ "Requiert COMPANIES_HOUSE_API_KEY (clé gratuite sur developer.company-information.service.gov.uk).",
59
+ inputSchema: z.object({
60
+ query: z
61
+ .string()
62
+ .optional()
63
+ .describe("Recherche par nom de société (texte libre)."),
64
+ company_number: z
65
+ .string()
66
+ .optional()
67
+ .describe("Numéro Companies House (ex: 12345678) pour fiche directe."),
68
+ items_per_page: z.number().int().min(1).max(40).default(10).optional(),
69
+ }),
70
+ handler: async (input) => {
71
+ if (!input.query && !input.company_number) {
72
+ throw new Error("Fournir query ou company_number");
73
+ }
74
+ if (input.company_number) {
75
+ const result = await connectors.companiesHouse.getByNumber(input.company_number);
76
+ if (!result)
77
+ return { found: false, company_number: input.company_number };
78
+ return { found: true, ...result };
79
+ }
80
+ return connectors.companiesHouse.search(input.query, input.items_per_page ?? 10);
81
+ },
82
+ });
83
+ export const companyLayer2Tools = [companySirene, companyRne, companyUk];
84
+ //# sourceMappingURL=company-layer2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company-layer2.js","sourceRoot":"","sources":["../../src/tools/company-layer2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type AnyTool } from "./types.js";
2
+ export declare const companyTools: AnyTool[];
3
+ //# sourceMappingURL=company.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company.d.ts","sourceRoot":"","sources":["../../src/tools/company.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAoItD,eAAO,MAAM,YAAY,EAAE,OAAO,EAA+C,CAAC"}
@@ -0,0 +1,119 @@
1
+ import { z } from "zod";
2
+ import { connectors } from "../connectors/index.js";
3
+ import { defineTool } from "./types.js";
4
+ const companySearch = defineTool({
5
+ name: "company_search",
6
+ description: "Recherche des entreprises françaises par nom, dirigeant, SIREN ou activité. " +
7
+ "Source : API Recherche d'entreprises (DINUM) qui agrège INSEE, INPI, RNE, BODACC. " +
8
+ "Exemples d'usage : 'Trouve les SAS de plus de 50 salariés à Lyon dans le SaaS', " +
9
+ "'Cherche l'entreprise Anthropic France', 'Liste les sociétés du dirigeant Jean Dupont'.",
10
+ inputSchema: z.object({
11
+ query: z
12
+ .string()
13
+ .min(2)
14
+ .describe("Requête en texte libre : nom d'entreprise, dirigeant, SIREN/SIRET, mots-clés métier."),
15
+ page: z.number().int().min(1).max(100).default(1).optional(),
16
+ per_page: z.number().int().min(1).max(25).default(10).optional(),
17
+ departement: z
18
+ .string()
19
+ .regex(/^\d{2,3}[A-Z]?$/)
20
+ .optional()
21
+ .describe("Code département (ex: 75, 13, 2A, 974)."),
22
+ naf: z
23
+ .string()
24
+ .optional()
25
+ .describe("Code NAF/APE pour filtrer par activité (ex: 62.01Z pour développement informatique)."),
26
+ active_only: z.boolean().default(true).optional(),
27
+ }),
28
+ handler: async (input) => {
29
+ return connectors.rechercheEntreprises.search({
30
+ query: input.query,
31
+ page: input.page,
32
+ perPage: input.per_page,
33
+ departement: input.departement,
34
+ naf: input.naf,
35
+ activeOnly: input.active_only ?? true,
36
+ });
37
+ },
38
+ });
39
+ const companyGet = defineTool({
40
+ name: "company_get",
41
+ description: "Récupère la fiche complète d'une entreprise française par SIREN (9 chiffres) ou SIRET (14 chiffres). " +
42
+ "Retourne : raison sociale, forme juridique, NAF, dates, siège, établissements, dirigeants, finances. " +
43
+ "Schéma canonique avec champs `_raw` pour les données brutes et `provenance` pour la traçabilité.",
44
+ inputSchema: z.object({
45
+ identifier: z
46
+ .string()
47
+ .regex(/^\d{9}$|^\d{14}$/)
48
+ .describe("SIREN (9 chiffres) ou SIRET (14 chiffres)."),
49
+ }),
50
+ handler: async (input) => {
51
+ if (input.identifier.length === 9) {
52
+ const result = await connectors.rechercheEntreprises.getBySiren(input.identifier);
53
+ if (!result)
54
+ return { found: false, identifier: input.identifier };
55
+ return { found: true, ...result };
56
+ }
57
+ const result = await connectors.rechercheEntreprises.getBySiret(input.identifier);
58
+ if (!result)
59
+ return { found: false, identifier: input.identifier };
60
+ return { found: true, ...result };
61
+ },
62
+ });
63
+ const companyEnrich = defineTool({
64
+ name: "company_enrich",
65
+ description: "Enrichit une entreprise avec données externes : annonces légales BODACC, risques Géorisques " +
66
+ "à l'adresse du siège, identifiant LEI mondial. Utile pour due diligence et scoring.",
67
+ inputSchema: z.object({
68
+ siren: z.string().regex(/^\d{9}$/),
69
+ include_legal_announcements: z.boolean().default(true).optional(),
70
+ include_risks: z.boolean().default(true).optional(),
71
+ include_lei: z.boolean().default(true).optional(),
72
+ legal_announcements_limit: z.number().int().min(1).max(100).default(20).optional(),
73
+ }),
74
+ handler: async (input) => {
75
+ const company = await connectors.rechercheEntreprises.getBySiren(input.siren);
76
+ if (!company)
77
+ return { found: false, siren: input.siren };
78
+ const tasks = [];
79
+ const result = { found: true, company };
80
+ if (input.include_legal_announcements ?? true) {
81
+ tasks.push(connectors.bodacc
82
+ .searchBySiren(input.siren, input.legal_announcements_limit ?? 20)
83
+ .then((data) => {
84
+ result.legal_announcements = data;
85
+ })
86
+ .catch((err) => {
87
+ result.legal_announcements_error = String(err);
88
+ }));
89
+ }
90
+ if ((input.include_risks ?? true) && company.headquarter?.address) {
91
+ const lat = company.headquarter.address.latitude;
92
+ const lon = company.headquarter.address.longitude;
93
+ if (lat && lon) {
94
+ tasks.push(connectors.georisques
95
+ .byCoordinates(lat, lon)
96
+ .then((data) => {
97
+ result.risks = data;
98
+ })
99
+ .catch((err) => {
100
+ result.risks_error = String(err);
101
+ }));
102
+ }
103
+ }
104
+ if ((input.include_lei ?? true) && company.legal_name) {
105
+ tasks.push(connectors.gleif
106
+ .search(company.legal_name, 3)
107
+ .then((data) => {
108
+ result.lei_matches = data;
109
+ })
110
+ .catch((err) => {
111
+ result.lei_error = String(err);
112
+ }));
113
+ }
114
+ await Promise.all(tasks);
115
+ return result;
116
+ },
117
+ });
118
+ export const companyTools = [companySearch, companyGet, companyEnrich];
119
+ //# sourceMappingURL=company.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"company.js","sourceRoot":"","sources":["../../src/tools/company.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type AnyTool } from "./types.js";
2
+ export declare const geoTools: AnyTool[];
3
+ //# sourceMappingURL=geo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geo.d.ts","sourceRoot":"","sources":["../../src/tools/geo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAiEtD,eAAO,MAAM,QAAQ,EAAE,OAAO,EAAkD,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { z } from "zod";
2
+ import { connectors } from "../connectors/index.js";
3
+ import { defineTool } from "./types.js";
4
+ const addressSearch = defineTool({
5
+ name: "address_search",
6
+ description: "Géocode une adresse française (texte libre → coordonnées GPS, code INSEE, code postal). " +
7
+ "Utilise la Base Adresse Nationale (BAN), référentiel officiel français.",
8
+ inputSchema: z.object({
9
+ query: z.string().min(2),
10
+ limit: z.number().int().min(1).max(20).default(5).optional(),
11
+ }),
12
+ handler: async (input) => {
13
+ const results = await connectors.ban.search(input.query, input.limit ?? 5);
14
+ return { query: input.query, results };
15
+ },
16
+ });
17
+ const addressReverse = defineTool({
18
+ name: "address_reverse",
19
+ description: "Géocodage inverse : trouve l'adresse française la plus proche de coordonnées GPS (latitude/longitude).",
20
+ inputSchema: z.object({
21
+ latitude: z.number().min(-90).max(90),
22
+ longitude: z.number().min(-180).max(180),
23
+ }),
24
+ handler: async (input) => {
25
+ const results = await connectors.ban.reverse(input.latitude, input.longitude);
26
+ return { latitude: input.latitude, longitude: input.longitude, results };
27
+ },
28
+ });
29
+ const addressRisks = defineTool({
30
+ name: "address_risks",
31
+ description: "Liste les risques majeurs (naturels, technologiques, ICPE, sols pollués) pour une adresse " +
32
+ "ou des coordonnées en France. Source : Géorisques (gouvernement français).",
33
+ inputSchema: z
34
+ .object({
35
+ address: z.string().min(2).optional(),
36
+ latitude: z.number().optional(),
37
+ longitude: z.number().optional(),
38
+ })
39
+ .refine((d) => d.address || (typeof d.latitude === "number" && typeof d.longitude === "number"), { message: "Fournir soit `address`, soit `latitude` + `longitude`." }),
40
+ handler: async (input) => {
41
+ let lat = input.latitude;
42
+ let lon = input.longitude;
43
+ if ((lat === undefined || lon === undefined) && input.address) {
44
+ const geo = await connectors.ban.search(input.address, 1);
45
+ const first = geo[0];
46
+ if (!first || !first.latitude || !first.longitude) {
47
+ return { found: false, reason: "Adresse non géocodée" };
48
+ }
49
+ lat = first.latitude;
50
+ lon = first.longitude;
51
+ }
52
+ if (lat === undefined || lon === undefined) {
53
+ return { found: false, reason: "Coordonnées manquantes" };
54
+ }
55
+ return connectors.georisques.byCoordinates(lat, lon);
56
+ },
57
+ });
58
+ export const geoTools = [addressSearch, addressReverse, addressRisks];
59
+ //# sourceMappingURL=geo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geo.js","sourceRoot":"","sources":["../../src/tools/geo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type AnyTool } from "./types.js";
2
+ export declare const identityTools: AnyTool[];
3
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/tools/identity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAgEtD,eAAO,MAAM,aAAa,EAAE,OAAO,EAAwC,CAAC"}