parasut-node-sdk-mcp 1.0.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 (274) hide show
  1. package/.github/workflows/deploy.yaml +51 -0
  2. package/.github/workflows/npm-publish.yml +71 -0
  3. package/.travis.yml +15 -0
  4. package/.yo-rc.json +11 -0
  5. package/LICENSE +21 -0
  6. package/README.md +187 -0
  7. package/gulpfile.js +50 -0
  8. package/package.json +42 -0
  9. package/packages/parasut-mcp-server/README.md +312 -0
  10. package/packages/parasut-mcp-server/dist/client.d.ts +24 -0
  11. package/packages/parasut-mcp-server/dist/client.d.ts.map +1 -0
  12. package/packages/parasut-mcp-server/dist/client.js +46 -0
  13. package/packages/parasut-mcp-server/dist/client.js.map +1 -0
  14. package/packages/parasut-mcp-server/dist/config.d.ts +39 -0
  15. package/packages/parasut-mcp-server/dist/config.d.ts.map +1 -0
  16. package/packages/parasut-mcp-server/dist/config.js +74 -0
  17. package/packages/parasut-mcp-server/dist/config.js.map +1 -0
  18. package/packages/parasut-mcp-server/dist/index.d.ts +21 -0
  19. package/packages/parasut-mcp-server/dist/index.d.ts.map +1 -0
  20. package/packages/parasut-mcp-server/dist/index.js +26 -0
  21. package/packages/parasut-mcp-server/dist/index.js.map +1 -0
  22. package/packages/parasut-mcp-server/dist/server.d.ts +17 -0
  23. package/packages/parasut-mcp-server/dist/server.d.ts.map +1 -0
  24. package/packages/parasut-mcp-server/dist/server.js +61 -0
  25. package/packages/parasut-mcp-server/dist/server.js.map +1 -0
  26. package/packages/parasut-mcp-server/dist/tools/bills.d.ts +13 -0
  27. package/packages/parasut-mcp-server/dist/tools/bills.d.ts.map +1 -0
  28. package/packages/parasut-mcp-server/dist/tools/bills.js +387 -0
  29. package/packages/parasut-mcp-server/dist/tools/bills.js.map +1 -0
  30. package/packages/parasut-mcp-server/dist/tools/contacts.d.ts +13 -0
  31. package/packages/parasut-mcp-server/dist/tools/contacts.d.ts.map +1 -0
  32. package/packages/parasut-mcp-server/dist/tools/contacts.js +522 -0
  33. package/packages/parasut-mcp-server/dist/tools/contacts.js.map +1 -0
  34. package/packages/parasut-mcp-server/dist/tools/edocuments.d.ts +13 -0
  35. package/packages/parasut-mcp-server/dist/tools/edocuments.d.ts.map +1 -0
  36. package/packages/parasut-mcp-server/dist/tools/edocuments.js +514 -0
  37. package/packages/parasut-mcp-server/dist/tools/edocuments.js.map +1 -0
  38. package/packages/parasut-mcp-server/dist/tools/financial.d.ts +13 -0
  39. package/packages/parasut-mcp-server/dist/tools/financial.d.ts.map +1 -0
  40. package/packages/parasut-mcp-server/dist/tools/financial.js +321 -0
  41. package/packages/parasut-mcp-server/dist/tools/financial.js.map +1 -0
  42. package/packages/parasut-mcp-server/dist/tools/index.d.ts +19 -0
  43. package/packages/parasut-mcp-server/dist/tools/index.d.ts.map +1 -0
  44. package/packages/parasut-mcp-server/dist/tools/index.js +132 -0
  45. package/packages/parasut-mcp-server/dist/tools/index.js.map +1 -0
  46. package/packages/parasut-mcp-server/dist/tools/inventory.d.ts +11 -0
  47. package/packages/parasut-mcp-server/dist/tools/inventory.d.ts.map +1 -0
  48. package/packages/parasut-mcp-server/dist/tools/inventory.js +143 -0
  49. package/packages/parasut-mcp-server/dist/tools/inventory.js.map +1 -0
  50. package/packages/parasut-mcp-server/dist/tools/invoices.d.ts +16 -0
  51. package/packages/parasut-mcp-server/dist/tools/invoices.d.ts.map +1 -0
  52. package/packages/parasut-mcp-server/dist/tools/invoices.js +850 -0
  53. package/packages/parasut-mcp-server/dist/tools/invoices.js.map +1 -0
  54. package/packages/parasut-mcp-server/dist/tools/organization.d.ts +14 -0
  55. package/packages/parasut-mcp-server/dist/tools/organization.d.ts.map +1 -0
  56. package/packages/parasut-mcp-server/dist/tools/organization.js +377 -0
  57. package/packages/parasut-mcp-server/dist/tools/organization.js.map +1 -0
  58. package/packages/parasut-mcp-server/dist/tools/products.d.ts +13 -0
  59. package/packages/parasut-mcp-server/dist/tools/products.d.ts.map +1 -0
  60. package/packages/parasut-mcp-server/dist/tools/products.js +299 -0
  61. package/packages/parasut-mcp-server/dist/tools/products.js.map +1 -0
  62. package/packages/parasut-mcp-server/dist/utils/errors.d.ts +34 -0
  63. package/packages/parasut-mcp-server/dist/utils/errors.d.ts.map +1 -0
  64. package/packages/parasut-mcp-server/dist/utils/errors.js +217 -0
  65. package/packages/parasut-mcp-server/dist/utils/errors.js.map +1 -0
  66. package/packages/parasut-mcp-server/dist/utils/response.d.ts +94 -0
  67. package/packages/parasut-mcp-server/dist/utils/response.d.ts.map +1 -0
  68. package/packages/parasut-mcp-server/dist/utils/response.js +194 -0
  69. package/packages/parasut-mcp-server/dist/utils/response.js.map +1 -0
  70. package/packages/parasut-mcp-server/package-lock.json +2831 -0
  71. package/packages/parasut-mcp-server/package.json +70 -0
  72. package/packages/parasut-mcp-server/src/client.ts +55 -0
  73. package/packages/parasut-mcp-server/src/config.ts +99 -0
  74. package/packages/parasut-mcp-server/src/index.ts +27 -0
  75. package/packages/parasut-mcp-server/src/server.ts +79 -0
  76. package/packages/parasut-mcp-server/src/tools/bills.ts +416 -0
  77. package/packages/parasut-mcp-server/src/tools/contacts.ts +549 -0
  78. package/packages/parasut-mcp-server/src/tools/edocuments.ts +543 -0
  79. package/packages/parasut-mcp-server/src/tools/financial.ts +345 -0
  80. package/packages/parasut-mcp-server/src/tools/index.ts +158 -0
  81. package/packages/parasut-mcp-server/src/tools/inventory.ts +154 -0
  82. package/packages/parasut-mcp-server/src/tools/invoices.ts +905 -0
  83. package/packages/parasut-mcp-server/src/tools/organization.ts +405 -0
  84. package/packages/parasut-mcp-server/src/tools/products.ts +320 -0
  85. package/packages/parasut-mcp-server/src/utils/errors.ts +296 -0
  86. package/packages/parasut-mcp-server/src/utils/response.ts +280 -0
  87. package/packages/parasut-mcp-server/tsconfig.json +48 -0
  88. package/packages/parasut-node-sdk/README.md +393 -0
  89. package/packages/parasut-node-sdk/dist/client/HttpTransport.d.ts +92 -0
  90. package/packages/parasut-node-sdk/dist/client/HttpTransport.d.ts.map +1 -0
  91. package/packages/parasut-node-sdk/dist/client/HttpTransport.js +237 -0
  92. package/packages/parasut-node-sdk/dist/client/HttpTransport.js.map +1 -0
  93. package/packages/parasut-node-sdk/dist/client/JsonApi.d.ts +122 -0
  94. package/packages/parasut-node-sdk/dist/client/JsonApi.d.ts.map +1 -0
  95. package/packages/parasut-node-sdk/dist/client/JsonApi.js +192 -0
  96. package/packages/parasut-node-sdk/dist/client/JsonApi.js.map +1 -0
  97. package/packages/parasut-node-sdk/dist/client/OAuth.d.ts +117 -0
  98. package/packages/parasut-node-sdk/dist/client/OAuth.d.ts.map +1 -0
  99. package/packages/parasut-node-sdk/dist/client/OAuth.js +322 -0
  100. package/packages/parasut-node-sdk/dist/client/OAuth.js.map +1 -0
  101. package/packages/parasut-node-sdk/dist/client/ParasutClient.d.ts +198 -0
  102. package/packages/parasut-node-sdk/dist/client/ParasutClient.d.ts.map +1 -0
  103. package/packages/parasut-node-sdk/dist/client/ParasutClient.js +334 -0
  104. package/packages/parasut-node-sdk/dist/client/ParasutClient.js.map +1 -0
  105. package/packages/parasut-node-sdk/dist/client/QueryBuilder.d.ts +115 -0
  106. package/packages/parasut-node-sdk/dist/client/QueryBuilder.d.ts.map +1 -0
  107. package/packages/parasut-node-sdk/dist/client/QueryBuilder.js +206 -0
  108. package/packages/parasut-node-sdk/dist/client/QueryBuilder.js.map +1 -0
  109. package/packages/parasut-node-sdk/dist/client/RateLimiter.d.ts +77 -0
  110. package/packages/parasut-node-sdk/dist/client/RateLimiter.d.ts.map +1 -0
  111. package/packages/parasut-node-sdk/dist/client/RateLimiter.js +142 -0
  112. package/packages/parasut-node-sdk/dist/client/RateLimiter.js.map +1 -0
  113. package/packages/parasut-node-sdk/dist/client/RetryHandler.d.ts +88 -0
  114. package/packages/parasut-node-sdk/dist/client/RetryHandler.d.ts.map +1 -0
  115. package/packages/parasut-node-sdk/dist/client/RetryHandler.js +125 -0
  116. package/packages/parasut-node-sdk/dist/client/RetryHandler.js.map +1 -0
  117. package/packages/parasut-node-sdk/dist/client/errors.d.ts +87 -0
  118. package/packages/parasut-node-sdk/dist/client/errors.d.ts.map +1 -0
  119. package/packages/parasut-node-sdk/dist/client/errors.js +153 -0
  120. package/packages/parasut-node-sdk/dist/client/errors.js.map +1 -0
  121. package/packages/parasut-node-sdk/dist/generated/operations.d.ts +157 -0
  122. package/packages/parasut-node-sdk/dist/generated/operations.d.ts.map +1 -0
  123. package/packages/parasut-node-sdk/dist/generated/operations.js +1285 -0
  124. package/packages/parasut-node-sdk/dist/generated/operations.js.map +1 -0
  125. package/packages/parasut-node-sdk/dist/generated/types.d.ts +1743 -0
  126. package/packages/parasut-node-sdk/dist/generated/types.d.ts.map +1 -0
  127. package/packages/parasut-node-sdk/dist/generated/types.js +6 -0
  128. package/packages/parasut-node-sdk/dist/generated/types.js.map +1 -0
  129. package/packages/parasut-node-sdk/dist/index.d.ts +49 -0
  130. package/packages/parasut-node-sdk/dist/index.d.ts.map +1 -0
  131. package/packages/parasut-node-sdk/dist/index.js +91 -0
  132. package/packages/parasut-node-sdk/dist/index.js.map +1 -0
  133. package/packages/parasut-node-sdk/dist/resources/BaseResource.d.ts +143 -0
  134. package/packages/parasut-node-sdk/dist/resources/BaseResource.d.ts.map +1 -0
  135. package/packages/parasut-node-sdk/dist/resources/BaseResource.js +148 -0
  136. package/packages/parasut-node-sdk/dist/resources/BaseResource.js.map +1 -0
  137. package/packages/parasut-node-sdk/dist/resources/accounts.d.ts +71 -0
  138. package/packages/parasut-node-sdk/dist/resources/accounts.d.ts.map +1 -0
  139. package/packages/parasut-node-sdk/dist/resources/accounts.js +43 -0
  140. package/packages/parasut-node-sdk/dist/resources/accounts.js.map +1 -0
  141. package/packages/parasut-node-sdk/dist/resources/bankFees.d.ts +52 -0
  142. package/packages/parasut-node-sdk/dist/resources/bankFees.d.ts.map +1 -0
  143. package/packages/parasut-node-sdk/dist/resources/bankFees.js +25 -0
  144. package/packages/parasut-node-sdk/dist/resources/bankFees.js.map +1 -0
  145. package/packages/parasut-node-sdk/dist/resources/contacts.d.ts +62 -0
  146. package/packages/parasut-node-sdk/dist/resources/contacts.d.ts.map +1 -0
  147. package/packages/parasut-node-sdk/dist/resources/contacts.js +43 -0
  148. package/packages/parasut-node-sdk/dist/resources/contacts.js.map +1 -0
  149. package/packages/parasut-node-sdk/dist/resources/eArchives.d.ts +125 -0
  150. package/packages/parasut-node-sdk/dist/resources/eArchives.d.ts.map +1 -0
  151. package/packages/parasut-node-sdk/dist/resources/eArchives.js +100 -0
  152. package/packages/parasut-node-sdk/dist/resources/eArchives.js.map +1 -0
  153. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.d.ts +48 -0
  154. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.d.ts.map +1 -0
  155. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.js +46 -0
  156. package/packages/parasut-node-sdk/dist/resources/eInvoiceInboxes.js.map +1 -0
  157. package/packages/parasut-node-sdk/dist/resources/eInvoices.d.ts +104 -0
  158. package/packages/parasut-node-sdk/dist/resources/eInvoices.d.ts.map +1 -0
  159. package/packages/parasut-node-sdk/dist/resources/eInvoices.js +72 -0
  160. package/packages/parasut-node-sdk/dist/resources/eInvoices.js.map +1 -0
  161. package/packages/parasut-node-sdk/dist/resources/eSmms.d.ts +73 -0
  162. package/packages/parasut-node-sdk/dist/resources/eSmms.d.ts.map +1 -0
  163. package/packages/parasut-node-sdk/dist/resources/eSmms.js +59 -0
  164. package/packages/parasut-node-sdk/dist/resources/eSmms.js.map +1 -0
  165. package/packages/parasut-node-sdk/dist/resources/employees.d.ts +37 -0
  166. package/packages/parasut-node-sdk/dist/resources/employees.d.ts.map +1 -0
  167. package/packages/parasut-node-sdk/dist/resources/employees.js +31 -0
  168. package/packages/parasut-node-sdk/dist/resources/employees.js.map +1 -0
  169. package/packages/parasut-node-sdk/dist/resources/index.d.ts +26 -0
  170. package/packages/parasut-node-sdk/dist/resources/index.d.ts.map +1 -0
  171. package/packages/parasut-node-sdk/dist/resources/index.js +35 -0
  172. package/packages/parasut-node-sdk/dist/resources/index.js.map +1 -0
  173. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.d.ts +25 -0
  174. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.d.ts.map +1 -0
  175. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.js +22 -0
  176. package/packages/parasut-node-sdk/dist/resources/inventoryLevels.js.map +1 -0
  177. package/packages/parasut-node-sdk/dist/resources/itemCategories.d.ts +31 -0
  178. package/packages/parasut-node-sdk/dist/resources/itemCategories.d.ts.map +1 -0
  179. package/packages/parasut-node-sdk/dist/resources/itemCategories.js +22 -0
  180. package/packages/parasut-node-sdk/dist/resources/itemCategories.js.map +1 -0
  181. package/packages/parasut-node-sdk/dist/resources/products.d.ts +50 -0
  182. package/packages/parasut-node-sdk/dist/resources/products.d.ts.map +1 -0
  183. package/packages/parasut-node-sdk/dist/resources/products.js +31 -0
  184. package/packages/parasut-node-sdk/dist/resources/products.js.map +1 -0
  185. package/packages/parasut-node-sdk/dist/resources/purchaseBills.d.ts +105 -0
  186. package/packages/parasut-node-sdk/dist/resources/purchaseBills.d.ts.map +1 -0
  187. package/packages/parasut-node-sdk/dist/resources/purchaseBills.js +67 -0
  188. package/packages/parasut-node-sdk/dist/resources/purchaseBills.js.map +1 -0
  189. package/packages/parasut-node-sdk/dist/resources/salaries.d.ts +50 -0
  190. package/packages/parasut-node-sdk/dist/resources/salaries.d.ts.map +1 -0
  191. package/packages/parasut-node-sdk/dist/resources/salaries.js +25 -0
  192. package/packages/parasut-node-sdk/dist/resources/salaries.js.map +1 -0
  193. package/packages/parasut-node-sdk/dist/resources/salesInvoices.d.ts +137 -0
  194. package/packages/parasut-node-sdk/dist/resources/salesInvoices.d.ts.map +1 -0
  195. package/packages/parasut-node-sdk/dist/resources/salesInvoices.js +84 -0
  196. package/packages/parasut-node-sdk/dist/resources/salesInvoices.js.map +1 -0
  197. package/packages/parasut-node-sdk/dist/resources/salesOffers.d.ts +72 -0
  198. package/packages/parasut-node-sdk/dist/resources/salesOffers.d.ts.map +1 -0
  199. package/packages/parasut-node-sdk/dist/resources/salesOffers.js +66 -0
  200. package/packages/parasut-node-sdk/dist/resources/salesOffers.js.map +1 -0
  201. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.d.ts +26 -0
  202. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.d.ts.map +1 -0
  203. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.js +16 -0
  204. package/packages/parasut-node-sdk/dist/resources/shipmentDocuments.js.map +1 -0
  205. package/packages/parasut-node-sdk/dist/resources/stockMovements.d.ts +27 -0
  206. package/packages/parasut-node-sdk/dist/resources/stockMovements.d.ts.map +1 -0
  207. package/packages/parasut-node-sdk/dist/resources/stockMovements.js +16 -0
  208. package/packages/parasut-node-sdk/dist/resources/stockMovements.js.map +1 -0
  209. package/packages/parasut-node-sdk/dist/resources/tags.d.ts +22 -0
  210. package/packages/parasut-node-sdk/dist/resources/tags.d.ts.map +1 -0
  211. package/packages/parasut-node-sdk/dist/resources/tags.js +16 -0
  212. package/packages/parasut-node-sdk/dist/resources/tags.js.map +1 -0
  213. package/packages/parasut-node-sdk/dist/resources/taxes.d.ts +50 -0
  214. package/packages/parasut-node-sdk/dist/resources/taxes.d.ts.map +1 -0
  215. package/packages/parasut-node-sdk/dist/resources/taxes.js +25 -0
  216. package/packages/parasut-node-sdk/dist/resources/taxes.js.map +1 -0
  217. package/packages/parasut-node-sdk/dist/resources/trackableJobs.d.ts +72 -0
  218. package/packages/parasut-node-sdk/dist/resources/trackableJobs.d.ts.map +1 -0
  219. package/packages/parasut-node-sdk/dist/resources/trackableJobs.js +108 -0
  220. package/packages/parasut-node-sdk/dist/resources/trackableJobs.js.map +1 -0
  221. package/packages/parasut-node-sdk/dist/resources/transactions.d.ts +26 -0
  222. package/packages/parasut-node-sdk/dist/resources/transactions.d.ts.map +1 -0
  223. package/packages/parasut-node-sdk/dist/resources/transactions.js +16 -0
  224. package/packages/parasut-node-sdk/dist/resources/transactions.js.map +1 -0
  225. package/packages/parasut-node-sdk/package-lock.json +4030 -0
  226. package/packages/parasut-node-sdk/package.json +71 -0
  227. package/packages/parasut-node-sdk/scripts/generate-types.ts +495 -0
  228. package/packages/parasut-node-sdk/src/client/HttpTransport.ts +334 -0
  229. package/packages/parasut-node-sdk/src/client/JsonApi.ts +314 -0
  230. package/packages/parasut-node-sdk/src/client/OAuth.ts +446 -0
  231. package/packages/parasut-node-sdk/src/client/ParasutClient.ts +423 -0
  232. package/packages/parasut-node-sdk/src/client/QueryBuilder.ts +292 -0
  233. package/packages/parasut-node-sdk/src/client/RateLimiter.ts +190 -0
  234. package/packages/parasut-node-sdk/src/client/RetryHandler.ts +216 -0
  235. package/packages/parasut-node-sdk/src/client/errors.ts +209 -0
  236. package/packages/parasut-node-sdk/src/generated/operations.ts +1454 -0
  237. package/packages/parasut-node-sdk/src/generated/types.ts +1856 -0
  238. package/packages/parasut-node-sdk/src/index.ts +235 -0
  239. package/packages/parasut-node-sdk/src/resources/BaseResource.ts +275 -0
  240. package/packages/parasut-node-sdk/src/resources/accounts.ts +108 -0
  241. package/packages/parasut-node-sdk/src/resources/bankFees.ts +74 -0
  242. package/packages/parasut-node-sdk/src/resources/contacts.ts +96 -0
  243. package/packages/parasut-node-sdk/src/resources/eArchives.ts +202 -0
  244. package/packages/parasut-node-sdk/src/resources/eInvoiceInboxes.ts +78 -0
  245. package/packages/parasut-node-sdk/src/resources/eInvoices.ts +166 -0
  246. package/packages/parasut-node-sdk/src/resources/eSmms.ts +132 -0
  247. package/packages/parasut-node-sdk/src/resources/employees.ts +69 -0
  248. package/packages/parasut-node-sdk/src/resources/index.ts +44 -0
  249. package/packages/parasut-node-sdk/src/resources/inventoryLevels.ts +45 -0
  250. package/packages/parasut-node-sdk/src/resources/itemCategories.ts +49 -0
  251. package/packages/parasut-node-sdk/src/resources/products.ts +78 -0
  252. package/packages/parasut-node-sdk/src/resources/purchaseBills.ts +162 -0
  253. package/packages/parasut-node-sdk/src/resources/salaries.ts +72 -0
  254. package/packages/parasut-node-sdk/src/resources/salesInvoices.ts +194 -0
  255. package/packages/parasut-node-sdk/src/resources/salesOffers.ts +149 -0
  256. package/packages/parasut-node-sdk/src/resources/shipmentDocuments.ts +40 -0
  257. package/packages/parasut-node-sdk/src/resources/stockMovements.ts +41 -0
  258. package/packages/parasut-node-sdk/src/resources/tags.ts +32 -0
  259. package/packages/parasut-node-sdk/src/resources/taxes.ts +68 -0
  260. package/packages/parasut-node-sdk/src/resources/trackableJobs.ts +167 -0
  261. package/packages/parasut-node-sdk/src/resources/transactions.ts +40 -0
  262. package/packages/parasut-node-sdk/tsconfig.json +47 -0
  263. package/scripts/build.js +14 -0
  264. package/scripts/deploy-branch.js +16 -0
  265. package/spec/README.md +24 -0
  266. package/spec/code_samples/README.md +9 -0
  267. package/spec/swagger.yaml +19616 -0
  268. package/web/CNAME +1 -0
  269. package/web/custom.css +34 -0
  270. package/web/favicon.ico +0 -0
  271. package/web/favicon.png +0 -0
  272. package/web/index.html +26 -0
  273. package/web/logo.png +0 -0
  274. package/web/v4.html +3 -0
@@ -0,0 +1,312 @@
1
+ # @yigitkonur/parasut-mcp-server
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@yigitkonur/parasut-mcp-server.svg)](https://www.npmjs.com/package/@yigitkonur/parasut-mcp-server)
4
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
+
7
+ > **UNOFFICIAL** MCP (Model Context Protocol) Server for the [Paraşüt](https://www.parasut.com/) API.
8
+ >
9
+ > **Not affiliated with Paraşüt.** This is a community-maintained project.
10
+
11
+ Use Claude AI to manage your Turkish accounting - invoices, contacts, products, e-fatura, and financial operations through natural conversation.
12
+
13
+ ## Features
14
+
15
+ - **34 AI-Optimized Tools** - Intent-first design, not 1:1 API mapping
16
+ - **Confirmation Patterns** - Preview mode before executing financial operations
17
+ - **Double Confirmation** - Extra safety for irreversible e-invoice submissions to GİB
18
+ - **Smart Responses** - Every response includes next-step guidance
19
+ - **Error Recovery** - Helpful error messages with fix instructions
20
+ - **Turkish E-Invoicing** - Full support for e-Fatura, e-Arşiv, e-SMM
21
+
22
+ ## Installation
23
+
24
+ ### Global Install (Recommended)
25
+
26
+ ```bash
27
+ npm install -g @yigitkonur/parasut-mcp-server
28
+ ```
29
+
30
+ ### Or use with npx
31
+
32
+ ```bash
33
+ npx @yigitkonur/parasut-mcp-server
34
+ ```
35
+
36
+ ## Configuration
37
+
38
+ ### Environment Variables
39
+
40
+ ```bash
41
+ # Required
42
+ PARASUT_COMPANY_ID=123456
43
+ PARASUT_CLIENT_ID=your-client-id
44
+ PARASUT_CLIENT_SECRET=your-client-secret
45
+ PARASUT_USERNAME=your-username
46
+ PARASUT_PASSWORD=your-password
47
+
48
+ # Optional
49
+ PARASUT_BASE_URL=https://api.parasut.com/v4
50
+ DEBUG=true
51
+ ```
52
+
53
+ ### Claude Desktop
54
+
55
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
56
+
57
+ ```json
58
+ {
59
+ "mcpServers": {
60
+ "parasut": {
61
+ "command": "parasut-mcp",
62
+ "env": {
63
+ "PARASUT_COMPANY_ID": "123456",
64
+ "PARASUT_CLIENT_ID": "your-client-id",
65
+ "PARASUT_CLIENT_SECRET": "your-client-secret",
66
+ "PARASUT_USERNAME": "your-username",
67
+ "PARASUT_PASSWORD": "your-password"
68
+ }
69
+ }
70
+ }
71
+ }
72
+ ```
73
+
74
+ ### Claude Code
75
+
76
+ Add to your MCP settings:
77
+
78
+ ```json
79
+ {
80
+ "mcpServers": {
81
+ "parasut": {
82
+ "command": "npx",
83
+ "args": ["@yigitkonur/parasut-mcp-server"],
84
+ "env": {
85
+ "PARASUT_COMPANY_ID": "123456",
86
+ "PARASUT_CLIENT_ID": "your-client-id",
87
+ "PARASUT_CLIENT_SECRET": "your-client-secret",
88
+ "PARASUT_USERNAME": "your-username",
89
+ "PARASUT_PASSWORD": "your-password"
90
+ }
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ ## Available Tools (34 total)
97
+
98
+ ### Contacts (4 tools)
99
+
100
+ | Tool | Description |
101
+ |------|-------------|
102
+ | `search_contacts` | Search customers/suppliers by name, email, or tax number |
103
+ | `get_contact` | Get detailed contact information with balance |
104
+ | `create_contact` | Create a new customer or supplier |
105
+ | `update_contact` | Update contact information |
106
+
107
+ ### Sales Invoices (7 tools)
108
+
109
+ | Tool | Description |
110
+ |------|-------------|
111
+ | `search_invoices` | Search invoices by customer, date, or status |
112
+ | `get_invoice` | Get invoice details with line items and payments |
113
+ | `create_invoice` | Create a new sales invoice (requires confirmation) |
114
+ | `cancel_invoice` | Cancel an invoice (requires confirmation) |
115
+ | `recover_invoice` | Recover a cancelled invoice |
116
+ | `invoice_pdf` | Generate PDF for an invoice |
117
+ | `record_invoice_payment` | Record payment received (requires confirmation) |
118
+
119
+ ### Purchase Bills (4 tools)
120
+
121
+ | Tool | Description |
122
+ |------|-------------|
123
+ | `search_bills` | Search purchase bills/expenses |
124
+ | `get_bill` | Get bill details |
125
+ | `create_bill` | Create a new purchase bill (requires confirmation) |
126
+ | `record_bill_payment` | Record payment to supplier (requires confirmation) |
127
+
128
+ ### Products (4 tools)
129
+
130
+ | Tool | Description |
131
+ |------|-------------|
132
+ | `search_products` | Search products and services |
133
+ | `get_product` | Get product details with inventory |
134
+ | `create_product` | Create a new product |
135
+ | `update_product` | Update product information |
136
+
137
+ ### E-Documents (4 tools)
138
+
139
+ | Tool | Description |
140
+ |------|-------------|
141
+ | `check_einvoice_inbox` | Check if contact is e-invoice registered |
142
+ | `send_einvoice` | Send invoice as e-Fatura (DOUBLE confirmation - irreversible!) |
143
+ | `send_earchive` | Send invoice as e-Arşiv (DOUBLE confirmation - irreversible!) |
144
+ | `send_esmm` | Send invoice as e-SMM (DOUBLE confirmation - irreversible!) |
145
+
146
+ ### Financial (4 tools)
147
+
148
+ | Tool | Description |
149
+ |------|-------------|
150
+ | `list_accounts` | List bank/cash accounts with balances |
151
+ | `search_transactions` | Search financial transactions |
152
+ | `create_bank_fee` | Record a bank fee (requires confirmation) |
153
+ | `get_financial_summary` | Get receivables/payables overview |
154
+
155
+ ### Inventory (2 tools)
156
+
157
+ | Tool | Description |
158
+ |------|-------------|
159
+ | `get_stock_levels` | Get current inventory levels |
160
+ | `search_stock_movements` | Search stock movement history |
161
+
162
+ ### Organization (5 tools)
163
+
164
+ | Tool | Description |
165
+ |------|-------------|
166
+ | `list_categories` | List item categories |
167
+ | `list_tags` | List tags for organization |
168
+ | `list_employees` | List employees |
169
+ | `create_salary` | Record salary payment (requires confirmation) |
170
+ | `create_tax` | Record tax payment (requires confirmation) |
171
+
172
+ ## Safety Features
173
+
174
+ ### Confirmation Pattern
175
+
176
+ Financial operations require explicit confirmation:
177
+
178
+ ```
179
+ User: Create an invoice for 5000 TL to Acme Corp
180
+
181
+ Claude: I'll create this invoice. Here's the preview:
182
+ - Customer: Acme Corp
183
+ - Amount: 5000 TL
184
+ - Net: 5000 TL, VAT: 1000 TL, Total: 6000 TL
185
+
186
+ ⚠️ Call again with confirm=true to proceed.
187
+
188
+ User: Yes, confirm it
189
+
190
+ Claude: [Executes with confirm=true]
191
+ ✅ Invoice #INV-2024-001 created successfully.
192
+ ```
193
+
194
+ ### Double Confirmation for E-Documents
195
+
196
+ E-invoices submitted to GİB (Turkish Tax Authority) are **irreversible**:
197
+
198
+ ```
199
+ User: Send invoice #123 as e-fatura
200
+
201
+ Claude: ⚠️🚨 IRREVERSIBLE OPERATION 🚨⚠️
202
+
203
+ This will submit to GİB (Tax Authority) and CANNOT be undone!
204
+
205
+ To proceed, you must:
206
+ 1. Set confirm=true
207
+ 2. Set i_understand_this_is_irreversible="YES"
208
+
209
+ User: I understand, proceed with both confirmations
210
+
211
+ Claude: [Executes with both confirmations]
212
+ ✅ E-invoice submitted to GİB successfully.
213
+ ```
214
+
215
+ ## Example Conversations
216
+
217
+ ### Create and Send Invoice
218
+
219
+ ```
220
+ User: Create an invoice for 10,000 TL consulting services to ABC Company,
221
+ then send it as e-fatura
222
+
223
+ Claude: I'll help you with that. Let me:
224
+ 1. Search for ABC Company
225
+ 2. Create the invoice
226
+ 3. Check if they're e-invoice registered
227
+ 4. Send as e-fatura
228
+
229
+ [Executes step by step with confirmations]
230
+ ```
231
+
232
+ ### Financial Overview
233
+
234
+ ```
235
+ User: What's our current financial position?
236
+
237
+ Claude: [Uses get_financial_summary]
238
+
239
+ Financial Summary:
240
+ - Receivables: 125,000 TL (15 open invoices)
241
+ - Payables: 45,000 TL (8 open bills)
242
+ - Net Position: +80,000 TL
243
+
244
+ Bank Accounts:
245
+ - İş Bankası: 50,000 TL
246
+ - Garanti: 32,000 TL
247
+ ```
248
+
249
+ ### Record Payments
250
+
251
+ ```
252
+ User: Record that ABC Company paid 5000 TL for invoice #456
253
+
254
+ Claude: [Uses record_invoice_payment with preview]
255
+
256
+ Preview:
257
+ - Invoice: #456
258
+ - Customer: ABC Company
259
+ - Current remaining: 10,000 TL
260
+ - Payment: 5,000 TL
261
+ - New remaining: 5,000 TL
262
+
263
+ ⚠️ Confirm to proceed...
264
+ ```
265
+
266
+ ## Design Philosophy
267
+
268
+ 1. **Task-Shaped Tools** - Tools designed around user tasks, not API endpoints
269
+ 2. **Under 40 Tools** - Well under the cognitive limit for AI tool selection
270
+ 3. **Guided Responses** - Every response includes relevant next steps
271
+ 4. **Error Recovery** - Errors explain what went wrong and how to fix it
272
+ 5. **Safety First** - Confirmation patterns prevent accidental financial changes
273
+
274
+ ## Development
275
+
276
+ ```bash
277
+ # Clone the repository
278
+ git clone https://github.com/yigitkonur/parasut-node-sdk-mcp.git
279
+ cd parasut-node-sdk-mcp
280
+
281
+ # Install dependencies
282
+ npm install
283
+
284
+ # Build
285
+ npm run build:mcp
286
+
287
+ # Run locally
288
+ npm run start --workspace=@yigitkonur/parasut-mcp-server
289
+
290
+ # Type check
291
+ npm run typecheck
292
+ ```
293
+
294
+ ## Disclaimer
295
+
296
+ **This is an UNOFFICIAL project.**
297
+
298
+ - Not affiliated with, endorsed by, or connected to Paraşüt
299
+ - Paraşüt is a trademark of Paraşüt Bilgi Teknolojileri A.Ş.
300
+ - Use at your own risk
301
+ - E-documents submitted to GİB are legally binding and irreversible
302
+
303
+ ## License
304
+
305
+ MIT © [Yigit Konur](https://github.com/yigitkonur)
306
+
307
+ ## Links
308
+
309
+ - [GitHub Repository](https://github.com/yigitkonur/parasut-node-sdk-mcp)
310
+ - [SDK Package](https://www.npmjs.com/package/@yigitkonur/parasut-node-sdk)
311
+ - [Paraşüt API Documentation](https://apidocs.parasut.com/)
312
+ - [MCP Protocol](https://modelcontextprotocol.io/)
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Paraşüt SDK Client
3
+ *
4
+ * Singleton client for the Paraşüt API.
5
+ * Initialized once at server startup and reused for all tool calls.
6
+ */
7
+ import { ParasutClient } from '@yigitkonur/parasut-node-sdk';
8
+ import type { ParasutConfig } from './config.js';
9
+ /**
10
+ * Initializes the Paraşüt client singleton.
11
+ * Must be called once at server startup with valid configuration.
12
+ */
13
+ export declare function initializeClient(config: ParasutConfig): ParasutClient;
14
+ /**
15
+ * Gets the Paraşüt client singleton.
16
+ * Throws if client has not been initialized.
17
+ */
18
+ export declare function getClient(): ParasutClient;
19
+ /**
20
+ * Resets the client singleton.
21
+ * Primarily used for testing.
22
+ */
23
+ export declare function resetClient(): void;
24
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAiBrE;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAOzC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Paraşüt SDK Client
3
+ *
4
+ * Singleton client for the Paraşüt API.
5
+ * Initialized once at server startup and reused for all tool calls.
6
+ */
7
+ import { ParasutClient } from '@yigitkonur/parasut-node-sdk';
8
+ let client = null;
9
+ /**
10
+ * Initializes the Paraşüt client singleton.
11
+ * Must be called once at server startup with valid configuration.
12
+ */
13
+ export function initializeClient(config) {
14
+ if (client) {
15
+ return client;
16
+ }
17
+ client = new ParasutClient({
18
+ companyId: config.companyId,
19
+ credentials: {
20
+ clientId: config.clientId,
21
+ clientSecret: config.clientSecret,
22
+ username: config.username,
23
+ password: config.password,
24
+ },
25
+ ...(config.baseUrl !== undefined && { baseUrl: config.baseUrl }),
26
+ });
27
+ return client;
28
+ }
29
+ /**
30
+ * Gets the Paraşüt client singleton.
31
+ * Throws if client has not been initialized.
32
+ */
33
+ export function getClient() {
34
+ if (!client) {
35
+ throw new Error('Paraşüt client not initialized. Call initializeClient() first.');
36
+ }
37
+ return client;
38
+ }
39
+ /**
40
+ * Resets the client singleton.
41
+ * Primarily used for testing.
42
+ */
43
+ export function resetClient() {
44
+ client = null;
45
+ }
46
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAG7D,IAAI,MAAM,GAAyB,IAAI,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,GAAG,IAAI,aAAa,CAAC;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE;YACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B;QACD,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;KACjE,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Configuration
3
+ *
4
+ * Loads configuration from environment variables.
5
+ * All Paraşüt credentials must be provided via environment.
6
+ */
7
+ export interface ParasutConfig {
8
+ companyId: number;
9
+ clientId: string;
10
+ clientSecret: string;
11
+ username: string;
12
+ password: string;
13
+ baseUrl?: string;
14
+ }
15
+ export interface ServerConfig {
16
+ parasut: ParasutConfig;
17
+ debug: boolean;
18
+ }
19
+ /**
20
+ * Loads configuration from environment variables.
21
+ *
22
+ * Required environment variables:
23
+ * - PARASUT_COMPANY_ID: Your Paraşüt company ID (firma ID)
24
+ * - PARASUT_CLIENT_ID: OAuth client ID
25
+ * - PARASUT_CLIENT_SECRET: OAuth client secret
26
+ * - PARASUT_USERNAME: Your Paraşüt username (email)
27
+ * - PARASUT_PASSWORD: Your Paraşüt password
28
+ *
29
+ * Optional:
30
+ * - PARASUT_BASE_URL: API base URL (default: https://api.parasut.com/v4)
31
+ * - DEBUG: Enable debug logging (default: false)
32
+ */
33
+ export declare function loadConfig(): ServerConfig;
34
+ /**
35
+ * Validates that all required configuration is present.
36
+ * Call this early to fail fast on missing config.
37
+ */
38
+ export declare function validateConfig(config: ServerConfig): void;
39
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAwBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAazC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAsBzD"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Configuration
3
+ *
4
+ * Loads configuration from environment variables.
5
+ * All Paraşüt credentials must be provided via environment.
6
+ */
7
+ function getEnv(name, required = false) {
8
+ const value = process.env[name];
9
+ if (required && !value) {
10
+ throw new Error(`Missing required environment variable: ${name}`);
11
+ }
12
+ return value;
13
+ }
14
+ function getEnvInt(name, required = false) {
15
+ const value = getEnv(name, required);
16
+ if (value === undefined)
17
+ return undefined;
18
+ const parsed = parseInt(value, 10);
19
+ if (isNaN(parsed)) {
20
+ throw new Error(`Environment variable ${name} must be a valid integer`);
21
+ }
22
+ return parsed;
23
+ }
24
+ /**
25
+ * Loads configuration from environment variables.
26
+ *
27
+ * Required environment variables:
28
+ * - PARASUT_COMPANY_ID: Your Paraşüt company ID (firma ID)
29
+ * - PARASUT_CLIENT_ID: OAuth client ID
30
+ * - PARASUT_CLIENT_SECRET: OAuth client secret
31
+ * - PARASUT_USERNAME: Your Paraşüt username (email)
32
+ * - PARASUT_PASSWORD: Your Paraşüt password
33
+ *
34
+ * Optional:
35
+ * - PARASUT_BASE_URL: API base URL (default: https://api.parasut.com/v4)
36
+ * - DEBUG: Enable debug logging (default: false)
37
+ */
38
+ export function loadConfig() {
39
+ const baseUrl = getEnv('PARASUT_BASE_URL');
40
+ return {
41
+ parasut: {
42
+ companyId: getEnvInt('PARASUT_COMPANY_ID', true),
43
+ clientId: getEnv('PARASUT_CLIENT_ID', true),
44
+ clientSecret: getEnv('PARASUT_CLIENT_SECRET', true),
45
+ username: getEnv('PARASUT_USERNAME', true),
46
+ password: getEnv('PARASUT_PASSWORD', true),
47
+ ...(baseUrl !== undefined && { baseUrl }),
48
+ },
49
+ debug: getEnv('DEBUG') === 'true',
50
+ };
51
+ }
52
+ /**
53
+ * Validates that all required configuration is present.
54
+ * Call this early to fail fast on missing config.
55
+ */
56
+ export function validateConfig(config) {
57
+ const { parasut } = config;
58
+ if (parasut.companyId <= 0) {
59
+ throw new Error('PARASUT_COMPANY_ID must be a positive integer');
60
+ }
61
+ if (!parasut.clientId.trim()) {
62
+ throw new Error('PARASUT_CLIENT_ID cannot be empty');
63
+ }
64
+ if (!parasut.clientSecret.trim()) {
65
+ throw new Error('PARASUT_CLIENT_SECRET cannot be empty');
66
+ }
67
+ if (!parasut.username.trim()) {
68
+ throw new Error('PARASUT_USERNAME cannot be empty');
69
+ }
70
+ if (!parasut.password.trim()) {
71
+ throw new Error('PARASUT_PASSWORD cannot be empty');
72
+ }
73
+ }
74
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,SAAS,MAAM,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAID,SAAS,SAAS,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK;IAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,QAAgB,CAAC,CAAC;IAC7C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,0BAA0B,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC3C,OAAO;QACL,OAAO,EAAE;YACP,SAAS,EAAE,SAAS,CAAC,oBAAoB,EAAE,IAAI,CAAC;YAChD,QAAQ,EAAE,MAAM,CAAC,mBAAmB,EAAE,IAAI,CAAC;YAC3C,YAAY,EAAE,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC;YACnD,QAAQ,EAAE,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC;YAC1C,QAAQ,EAAE,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC;YAC1C,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;SAC1C;QACD,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,MAAM;KAClC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAoB;IACjD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE3B,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Paraşüt MCP Server
4
+ *
5
+ * Model Context Protocol server for Paraşüt API.
6
+ * Provides AI-friendly tools for Turkish accounting and invoicing.
7
+ *
8
+ * Usage:
9
+ * npx @parasut/mcp-server
10
+ *
11
+ * Environment Variables:
12
+ * PARASUT_COMPANY_ID - Your company ID (required)
13
+ * PARASUT_CLIENT_ID - OAuth client ID (required)
14
+ * PARASUT_CLIENT_SECRET - OAuth client secret (required)
15
+ * PARASUT_USERNAME - Your username (required)
16
+ * PARASUT_PASSWORD - Your password (required)
17
+ * PARASUT_BASE_URL - API base URL (optional)
18
+ * DEBUG - Enable debug logging (optional)
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Paraşüt MCP Server
4
+ *
5
+ * Model Context Protocol server for Paraşüt API.
6
+ * Provides AI-friendly tools for Turkish accounting and invoicing.
7
+ *
8
+ * Usage:
9
+ * npx @parasut/mcp-server
10
+ *
11
+ * Environment Variables:
12
+ * PARASUT_COMPANY_ID - Your company ID (required)
13
+ * PARASUT_CLIENT_ID - OAuth client ID (required)
14
+ * PARASUT_CLIENT_SECRET - OAuth client secret (required)
15
+ * PARASUT_USERNAME - Your username (required)
16
+ * PARASUT_PASSWORD - Your password (required)
17
+ * PARASUT_BASE_URL - API base URL (optional)
18
+ * DEBUG - Enable debug logging (optional)
19
+ */
20
+ import { startServer } from './server.js';
21
+ // Start the server
22
+ startServer().catch((error) => {
23
+ console.error('Failed to start Paraşüt MCP server:', error);
24
+ process.exit(1);
25
+ });
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,mBAAmB;AACnB,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Paraşüt MCP Server
3
+ *
4
+ * Model Context Protocol server for Paraşüt API.
5
+ * Provides tools for Turkish accounting and invoicing operations.
6
+ */
7
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
8
+ import { type ServerConfig } from './config.js';
9
+ /**
10
+ * Creates and configures the MCP server.
11
+ */
12
+ export declare function createServer(config: ServerConfig): Server;
13
+ /**
14
+ * Starts the MCP server with stdio transport.
15
+ */
16
+ export declare function startServer(): Promise<void>;
17
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ5E;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA8BzD;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBjD"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Paraşüt MCP Server
3
+ *
4
+ * Model Context Protocol server for Paraşüt API.
5
+ * Provides tools for Turkish accounting and invoicing operations.
6
+ */
7
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
8
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
10
+ import { loadConfig, validateConfig } from './config.js';
11
+ import { initializeClient } from './client.js';
12
+ import { getAllTools, handleToolCall } from './tools/index.js';
13
+ // Server metadata
14
+ const SERVER_NAME = 'parasut-mcp-server';
15
+ const SERVER_VERSION = '1.0.0';
16
+ /**
17
+ * Creates and configures the MCP server.
18
+ */
19
+ export function createServer(config) {
20
+ // Initialize SDK client
21
+ initializeClient(config.parasut);
22
+ // Create MCP server
23
+ const server = new Server({
24
+ name: SERVER_NAME,
25
+ version: SERVER_VERSION,
26
+ }, {
27
+ capabilities: {
28
+ tools: {},
29
+ },
30
+ });
31
+ // Handle tool listing
32
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
33
+ const tools = getAllTools();
34
+ return { tools };
35
+ });
36
+ // Handle tool calls
37
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
38
+ const { name, arguments: args } = request.params;
39
+ return handleToolCall(name, args ?? {});
40
+ });
41
+ return server;
42
+ }
43
+ /**
44
+ * Starts the MCP server with stdio transport.
45
+ */
46
+ export async function startServer() {
47
+ // Load and validate configuration
48
+ const config = loadConfig();
49
+ validateConfig(config);
50
+ // Create server
51
+ const server = createServer(config);
52
+ // Connect to stdio transport
53
+ const transport = new StdioServerTransport();
54
+ await server.connect(transport);
55
+ // Log to stderr (stdout is reserved for MCP protocol)
56
+ if (config.debug) {
57
+ console.error(`${SERVER_NAME} v${SERVER_VERSION} started`);
58
+ console.error(`Company ID: ${config.parasut.companyId}`);
59
+ }
60
+ }
61
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE/D,kBAAkB;AAClB,MAAM,WAAW,GAAG,oBAAoB,CAAC;AACzC,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,wBAAwB;IACxB,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEjC,oBAAoB;IACpB,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,sBAAsB;IACtB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,KAAK,GAAW,WAAW,EAAE,CAAC;QACpC,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,kCAAkC;IAClC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,gBAAgB;IAChB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,6BAA6B;IAC7B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,sDAAsD;IACtD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,KAAK,cAAc,UAAU,CAAC,CAAC;QAC3D,OAAO,CAAC,KAAK,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Purchase Bill Tools
3
+ *
4
+ * Tools for managing expenses and purchase bills.
5
+ */
6
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
7
+ import { type ToolResponse } from '../utils/response.js';
8
+ export declare const billTools: Tool[];
9
+ export declare function handleSearchBills(args: unknown): Promise<ToolResponse>;
10
+ export declare function handleGetBill(args: unknown): Promise<ToolResponse>;
11
+ export declare function handleCreateBill(args: unknown): Promise<ToolResponse>;
12
+ export declare function handleRecordBillPayment(args: unknown): Promise<ToolResponse>;
13
+ //# sourceMappingURL=bills.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bills.d.ts","sourceRoot":"","sources":["../../src/tools/bills.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAiD9B,eAAO,MAAM,SAAS,EAAE,IAAI,EAsJ3B,CAAC;AAMF,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CA2B5E;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CA6BxE;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CA4E3E;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAyDlF"}