@west10tech/constructionwire-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 (42) hide show
  1. package/README.md +177 -0
  2. package/dist/clients/constructionwire-client.d.ts +110 -0
  3. package/dist/clients/constructionwire-client.d.ts.map +1 -0
  4. package/dist/clients/constructionwire-client.js +16746 -0
  5. package/dist/clients/constructionwire-client.js.map +1 -0
  6. package/dist/config.d.ts +23 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +63 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +165 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/services/log-batcher.d.ts +44 -0
  15. package/dist/services/log-batcher.d.ts.map +1 -0
  16. package/dist/services/log-batcher.js +81 -0
  17. package/dist/services/log-batcher.js.map +1 -0
  18. package/dist/services/log-shipper.d.ts +104 -0
  19. package/dist/services/log-shipper.d.ts.map +1 -0
  20. package/dist/services/log-shipper.js +384 -0
  21. package/dist/services/log-shipper.js.map +1 -0
  22. package/dist/services/logger.d.ts +92 -0
  23. package/dist/services/logger.d.ts.map +1 -0
  24. package/dist/services/logger.js +224 -0
  25. package/dist/services/logger.js.map +1 -0
  26. package/dist/services/progress-reporter.d.ts +64 -0
  27. package/dist/services/progress-reporter.d.ts.map +1 -0
  28. package/dist/services/progress-reporter.js +192 -0
  29. package/dist/services/progress-reporter.js.map +1 -0
  30. package/dist/services/request-tracker.d.ts +55 -0
  31. package/dist/services/request-tracker.d.ts.map +1 -0
  32. package/dist/services/request-tracker.js +184 -0
  33. package/dist/services/request-tracker.js.map +1 -0
  34. package/dist/tools/constructionwire-tools.d.ts +23 -0
  35. package/dist/tools/constructionwire-tools.d.ts.map +1 -0
  36. package/dist/tools/constructionwire-tools.js +8973 -0
  37. package/dist/tools/constructionwire-tools.js.map +1 -0
  38. package/dist/types.d.ts +25 -0
  39. package/dist/types.d.ts.map +1 -0
  40. package/dist/types.js +2 -0
  41. package/dist/types.js.map +1 -0
  42. package/package.json +57 -0
package/README.md ADDED
@@ -0,0 +1,177 @@
1
+ # constructionwire-mcp
2
+
3
+ MCP server with full constructionwire capabilities (75 endpoints)
4
+
5
+ This MCP server includes the following integrations:
6
+
7
+ ## Available Tools
8
+
9
+ This MCP server provides 75 tools across 1 integrations:
10
+
11
+ ### Constructionwire Tools
12
+ - **constructionwire_reports_list**: List Construction Projects. Returns minimal data appropriate for app search list views. To retrieve complete details, use endpoint /reports/{reportId}. Lets make sure PageSize is max 10.
13
+ - **constructionwire_reports_get**: Get a Construction Project. To retrieve multiple, use multiple id (e.g /reports/100?reportTypeId=1&id=101&id=102).
14
+ - **constructionwire_reports_files**: List Project Files (e.g. Plans/Specs). Set keywordsIn=12 in query to search files (e.g. /reports?reportType=1&keywords={term}&keywordsIn=12).
15
+ - **constructionwire_reports_file**: Get a Project File (e.g. Plans/Specs)
16
+ - **constructionwire_reports_notes**: List Project Notes
17
+ - **constructionwire_reports_note**: Get a Project Note
18
+ - **constructionwire_reports_questions**: List Project Questions
19
+ - **constructionwire_reports_add_question**: Create a Project Question
20
+ - **constructionwire_reports_question**: Get a Project Question
21
+ - **constructionwire_reports_answers**: List Answers to a Question
22
+ - **constructionwire_reports_answer**: Get an Answer to a Question
23
+ - **constructionwire_reports_tasks**: List Project Tasks
24
+ - **constructionwire_reports_task**: Get a Project Task
25
+ - **constructionwire_reports_facets**: List Construction Project Facets
26
+ - **constructionwire_reports_file_terms**: Get Terms and Conditions for Project Files
27
+ - **constructionwire_reports_add_file_terms**: Set request body to "true" to indicate that you read and agree to BuildCentral's Terms and Conditions. Read terms at /2.0/reports/files/terms.
28
+ - **constructionwire_reports_follow**: Create a Project Following
29
+ - **constructionwire_reports_unfollow**: Delete a Project Following
30
+ - **constructionwire_reports_following**: List Project Followings
31
+ - **constructionwire_reports_all_questions**: List Project Questions
32
+ - **constructionwire_companies_list**: List Companies
33
+ - **constructionwire_companies_get**: Get a Company
34
+ - **constructionwire_companies_locations**: List Company Locations
35
+ - **constructionwire_companies_location**: Get a Company Location
36
+ - **constructionwire_companies_people**: List Company's People
37
+ - **constructionwire_companies_projects**: List Company's Project Activities
38
+ - **constructionwire_companies_relationships**: List Company's Relationships
39
+ - **constructionwire_companies_stats**: List Company's Stats
40
+ - **constructionwire_companies_facets**: List Company Facets
41
+ - **constructionwire_companies_following**: List Company Followings
42
+ - **constructionwire_companies_follow**: Create a Company Following
43
+ - **constructionwire_companies_unfollow**: Delete a Company Following
44
+ - **constructionwire_companies_all_locations**: List Locations of multiple Companies
45
+ - **constructionwire_people_list**: List People
46
+ - **constructionwire_people_get**: Get a Person
47
+ - **constructionwire_people_projects**: List Person's Project Activities
48
+ - **constructionwire_people_relationships**: List Person's Relationships
49
+ - **constructionwire_people_stats**: List Person's Stats
50
+ - **constructionwire_people_facets**: List People Facets
51
+ - **constructionwire_people_following**: List People Followings
52
+ - **constructionwire_people_follow**: Create a Person Following
53
+ - **constructionwire_people_unfollow**: Delete a Person Following
54
+ - **constructionwire_folders_list**: List Folders
55
+ - **constructionwire_folders_create**: Create a Folder
56
+ - **constructionwire_folders_get**: Get a Folder
57
+ - **constructionwire_folders_update**: Update a Folder
58
+ - **constructionwire_folders_delete**: Delete a Folder
59
+ - **constructionwire_folders_add_item**: Save Items to a Folder
60
+ - **constructionwire_notes_list**: List Notes
61
+ - **constructionwire_notes_create**: Create a Note
62
+ - **constructionwire_notes_get**: Get a Note
63
+ - **constructionwire_notes_update**: Update a Note
64
+ - **constructionwire_notes_delete**: Delete a Note
65
+ - **constructionwire_news_list**: List Product News
66
+ - **constructionwire_news_get**: Get a Product News
67
+ - **constructionwire_searches_list**: List Saved Searches
68
+ - **constructionwire_searches_create**: Create a Saved Search
69
+ - **constructionwire_searches_get**: Get a Saved Search
70
+ - **constructionwire_searches_update**: Update a Saved Search
71
+ - **constructionwire_subscriptions_create_free**: Create a Free Subscription
72
+ - **constructionwire_subscriptions_usage**: List Subscription Usage Reports
73
+ - **constructionwire_tasks_list**: List Tasks
74
+ - **constructionwire_tasks_create**: Create a Task
75
+ - **constructionwire_tasks_get**: Get a Task
76
+ - **constructionwire_tasks_update**: Update a Task
77
+ - **constructionwire_tasks_delete**: Delete a Task
78
+ - **constructionwire_auth_login**: Create an Access Token
79
+ - **constructionwire_auth_details**: List Authenticated Session Details
80
+ - **constructionwire_auth_logout**: Logout from Authenticated Session
81
+ - **constructionwire_auth_subscription**:
82
+ - **constructionwire_common_get_list**:
83
+ - **constructionwire_common_retail_chains**:
84
+ - **constructionwire_common_states**:
85
+ - **constructionwire_common_counties**:
86
+ - **constructionwire_common_regions**:
87
+
88
+ ## Installation
89
+
90
+ ```bash
91
+ npm install constructionwire-mcp-b8c9d0e1-f2a3-4456-b789-890123456789
92
+ ```
93
+
94
+ ## Environment Setup
95
+
96
+ Create a `.env` file with the following variables:
97
+
98
+ ```env
99
+ CONSTRUCTIONWIRE_PASSWORD=your_constructionwire_password_here
100
+ CONSTRUCTIONWIRE_USERNAME=your_constructionwire_username_here
101
+ ```
102
+
103
+ ## Usage
104
+
105
+ ### Running the server
106
+
107
+ ```bash
108
+ # Development mode
109
+ npm run dev
110
+
111
+ # Production mode
112
+ npm run build && npm start
113
+ ```
114
+
115
+ ### Using with Claude Desktop
116
+
117
+ Add this to your Claude Desktop configuration:
118
+
119
+ ```json
120
+ {
121
+ "mcpServers": {
122
+ "constructionwire-mcp": {
123
+ "command": "npx",
124
+ "args": ["constructionwire-mcp-b8c9d0e1-f2a3-4456-b789-890123456789"],
125
+ "env": {
126
+ "CONSTRUCTIONWIRE_PASSWORD": "your_constructionwire_password_here",
127
+ "CONSTRUCTIONWIRE_USERNAME": "your_constructionwire_username_here"
128
+ }
129
+ }
130
+ }
131
+ }
132
+ ```
133
+
134
+ ## Instructions for Fetching API Keys/Tokens
135
+ - **COMING SOON**
136
+
137
+ ## Advanced Features
138
+
139
+ ### Request Cancellation
140
+
141
+ This MCP server supports request cancellation according to the [MCP cancellation specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/cancellation). Clients can cancel in-progress requests by sending a `notifications/cancelled` message with the request ID.
142
+
143
+ When a request is cancelled:
144
+ - The server immediately stops processing the request
145
+ - Any ongoing API calls are aborted
146
+ - Resources are cleaned up
147
+ - No response is sent for the cancelled request
148
+
149
+ ### Progress Notifications
150
+
151
+ The server supports progress notifications for long-running operations according to the [MCP progress specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/progress).
152
+
153
+ To receive progress updates:
154
+ 1. Include a `progressToken` in your request metadata
155
+ 2. The server will send `notifications/progress` messages with:
156
+ - Current progress value
157
+ - Total value (when known)
158
+ - Human-readable status messages
159
+
160
+ Progress is reported for:
161
+ - Multi-step operations
162
+ - Batch processing
163
+ - Long-running API calls
164
+ - File uploads/downloads
165
+
166
+ Example progress notification:
167
+ ```json
168
+ {
169
+ "method": "notifications/progress",
170
+ "params": {
171
+ "progressToken": "operation-123",
172
+ "progress": 45,
173
+ "total": 100,
174
+ "message": "Processing item 45 of 100..."
175
+ }
176
+ }
177
+ ```
@@ -0,0 +1,110 @@
1
+ import { Logger } from '../services/logger.js';
2
+ import { RequestOptions } from '../types.js';
3
+ export interface ConstructionwireClientConfig {
4
+ cONSTRUCTIONWIREUSERNAME?: string;
5
+ cONSTRUCTIONWIREPASSWORD?: string;
6
+ api_base_url?: any;
7
+ timeout?: number;
8
+ rateLimit?: number;
9
+ authToken?: string;
10
+ logger?: Logger;
11
+ }
12
+ export declare class ConstructionwireClient {
13
+ private httpClient;
14
+ private config;
15
+ private sessionId;
16
+ private logger;
17
+ constructor(config: ConstructionwireClientConfig);
18
+ private setupRateLimit;
19
+ private resolveBaseUrl;
20
+ private getAuthHeaders;
21
+ /**
22
+ * Initialize the client
23
+ */
24
+ initialize(): Promise<void>;
25
+ /**
26
+ * Get the session ID for this client instance
27
+ */
28
+ getSessionId(): string;
29
+ /**
30
+ * Make an authenticated request with proper headers and cancellation support
31
+ */
32
+ private makeAuthenticatedRequest;
33
+ private buildPath;
34
+ reportsList(params: any, options?: RequestOptions): Promise<any>;
35
+ reportsGet(params: any, options?: RequestOptions): Promise<any>;
36
+ reportsFiles(params: any, options?: RequestOptions): Promise<any>;
37
+ reportsFile(params: any, options?: RequestOptions): Promise<any>;
38
+ reportsNotes(params: any, options?: RequestOptions): Promise<any>;
39
+ reportsNote(params: any, options?: RequestOptions): Promise<any>;
40
+ reportsQuestions(params: any, options?: RequestOptions): Promise<any>;
41
+ reportsAddQuestion(params: any, options?: RequestOptions): Promise<any>;
42
+ reportsQuestion(params: any, options?: RequestOptions): Promise<any>;
43
+ reportsAnswers(params: any, options?: RequestOptions): Promise<any>;
44
+ reportsAnswer(params: any, options?: RequestOptions): Promise<any>;
45
+ reportsTasks(params: any, options?: RequestOptions): Promise<any>;
46
+ reportsTask(params: any, options?: RequestOptions): Promise<any>;
47
+ reportsFacets(params: any, options?: RequestOptions): Promise<any>;
48
+ reportsFileTerms(params: any, options?: RequestOptions): Promise<any>;
49
+ reportsAddFileTerms(params: any, options?: RequestOptions): Promise<any>;
50
+ reportsFollow(params: any, options?: RequestOptions): Promise<any>;
51
+ reportsUnfollow(params: any, options?: RequestOptions): Promise<any>;
52
+ reportsFollowing(params: any, options?: RequestOptions): Promise<any>;
53
+ reportsAllQuestions(params: any, options?: RequestOptions): Promise<any>;
54
+ companiesList(params: any, options?: RequestOptions): Promise<any>;
55
+ companiesGet(params: any, options?: RequestOptions): Promise<any>;
56
+ companiesLocations(params: any, options?: RequestOptions): Promise<any>;
57
+ companiesLocation(params: any, options?: RequestOptions): Promise<any>;
58
+ companiesPeople(params: any, options?: RequestOptions): Promise<any>;
59
+ companiesProjects(params: any, options?: RequestOptions): Promise<any>;
60
+ companiesRelationships(params: any, options?: RequestOptions): Promise<any>;
61
+ companiesStats(params: any, options?: RequestOptions): Promise<any>;
62
+ companiesFacets(params: any, options?: RequestOptions): Promise<any>;
63
+ companiesFollowing(params: any, options?: RequestOptions): Promise<any>;
64
+ companiesFollow(params: any, options?: RequestOptions): Promise<any>;
65
+ companiesUnfollow(params: any, options?: RequestOptions): Promise<any>;
66
+ companiesAllLocations(params: any, options?: RequestOptions): Promise<any>;
67
+ peopleList(params: any, options?: RequestOptions): Promise<any>;
68
+ peopleGet(params: any, options?: RequestOptions): Promise<any>;
69
+ peopleProjects(params: any, options?: RequestOptions): Promise<any>;
70
+ peopleRelationships(params: any, options?: RequestOptions): Promise<any>;
71
+ peopleStats(params: any, options?: RequestOptions): Promise<any>;
72
+ peopleFacets(params: any, options?: RequestOptions): Promise<any>;
73
+ peopleFollowing(params: any, options?: RequestOptions): Promise<any>;
74
+ peopleFollow(params: any, options?: RequestOptions): Promise<any>;
75
+ peopleUnfollow(params: any, options?: RequestOptions): Promise<any>;
76
+ foldersList(params: any, options?: RequestOptions): Promise<any>;
77
+ foldersCreate(params: any, options?: RequestOptions): Promise<any>;
78
+ foldersGet(params: any, options?: RequestOptions): Promise<any>;
79
+ foldersUpdate(params: any, options?: RequestOptions): Promise<any>;
80
+ foldersDelete(params: any, options?: RequestOptions): Promise<any>;
81
+ foldersAddItem(params: any, options?: RequestOptions): Promise<any>;
82
+ notesList(params: any, options?: RequestOptions): Promise<any>;
83
+ notesCreate(params: any, options?: RequestOptions): Promise<any>;
84
+ notesGet(params: any, options?: RequestOptions): Promise<any>;
85
+ notesUpdate(params: any, options?: RequestOptions): Promise<any>;
86
+ notesDelete(params: any, options?: RequestOptions): Promise<any>;
87
+ newsList(params: any, options?: RequestOptions): Promise<any>;
88
+ newsGet(params: any, options?: RequestOptions): Promise<any>;
89
+ searchesList(params: any, options?: RequestOptions): Promise<any>;
90
+ searchesCreate(params: any, options?: RequestOptions): Promise<any>;
91
+ searchesGet(params: any, options?: RequestOptions): Promise<any>;
92
+ searchesUpdate(params: any, options?: RequestOptions): Promise<any>;
93
+ subscriptionsCreateFree(params: any, options?: RequestOptions): Promise<any>;
94
+ subscriptionsUsage(params: any, options?: RequestOptions): Promise<any>;
95
+ tasksList(params: any, options?: RequestOptions): Promise<any>;
96
+ tasksCreate(params: any, options?: RequestOptions): Promise<any>;
97
+ tasksGet(params: any, options?: RequestOptions): Promise<any>;
98
+ tasksUpdate(params: any, options?: RequestOptions): Promise<any>;
99
+ tasksDelete(params: any, options?: RequestOptions): Promise<any>;
100
+ authLogin(params: any, options?: RequestOptions): Promise<any>;
101
+ authDetails(params: any, options?: RequestOptions): Promise<any>;
102
+ authLogout(params: any, options?: RequestOptions): Promise<any>;
103
+ authSubscription(params: any, options?: RequestOptions): Promise<any>;
104
+ commonGetList(params: any, options?: RequestOptions): Promise<any>;
105
+ commonRetailChains(params: any, options?: RequestOptions): Promise<any>;
106
+ commonStates(params: any, options?: RequestOptions): Promise<any>;
107
+ commonCounties(params: any, options?: RequestOptions): Promise<any>;
108
+ commonRegions(params: any, options?: RequestOptions): Promise<any>;
109
+ }
110
+ //# sourceMappingURL=constructionwire-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructionwire-client.d.ts","sourceRoot":"","sources":["../../src/clients/constructionwire-client.ts"],"names":[],"mappings":"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"}