- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
Dear all,
I am trying to configure a MCP Server.
I tried my best, but I am failing, not sure why. (Attached are the MCP Server connection logs as well)
I am trying to use the nowaikit which is open source MCP Server.
I configured everything via the terminal as well as tried entering those configurations into the claude_desktop_config file as well, but it still throws error.
The JSON code is as below:
{
"mcpServers": {
"webpage-mcp": {
"command": "cmd.exe",
"args": [
"/c",
"npx",
"-y",
"-p",
"webpage-mcp@latest",
"webpage-mcp-stdio"
]
},
"nowaikit": {
"command": "npx",
"args": [
"-y",
"nowaikit"
],
"env": {
"SERVICENOW_INSTANCE_URL": "https://dev*****.service-now.com",
"SERVICENOW_BASIC_USERNAME": "mcp_admin",
"SERVICENOW_BASIC_PASSWORD": "*THE_PASSWORD",
"WRITE_ENABLED": "true",
"SCRIPTING_ENABLED": "true"
}
}
},
"coworkUserFilesPath": "C:\\Users\\AnishReghuKumaranNai\\Claude",
"preferences": {
"launchPreviewPersistedWorkspaces": [],
"launchPreviewSessionScopedSessions": [],
"coworkScheduledTasksEnabled": false,
"coworkHipaaRestricted": false,
"ccdScheduledTasksEnabled": false,
"bypassPermissionsGateByAccount": {
"eb4efa2c-d675-43ba-a986-48d24c44df66": false
},
"coworkWebSearchEnabled": true,
"coworkModelAutoFallbackByAccount": {
"eb4efa2c-d675-43ba-a986-48d24c44df66": true
},
"remoteToolsDeviceName": "rcchn0259",
"epitaxyPrefs": {
"starred-local-code-sessions": [],
"starred-cowork-spaces": [],
"starred-session-groups": [],
"dframe-group-scopes": {},
"dframe-local-slice": {
"pinnedOrder": [],
"homeProjectsPinnedOrder": []
},
"ccd-sessions-filter": {
"state": {
"selectedProjects": []
},
"version": 0
},
"desktop-frame.paneStore.v1": {
"state": {
"extraPanesByMode": {},
"colWeightsByMode": {},
"rowSplit": 0.5,
"draftNonce": 0
},
"version": 4
}
}
}
}
But still this doesn't connect the MCP Server, it fails. Please help.
I created a wrapper script as well and modified the JSON point to that as well.
const { spawn } = require('child_process');
const child = spawn('npx', ['-y', 'nowaikit'], {
env: process.env,
stdio: ['inherit', 'pipe', 'inherit']
});
child.stdout.on('data', (data) => {
const lines = data.toString().split('\n');
for (const line of lines) {
const trimmed = line.trim();
if (trimmed.startsWith('{') && trimmed.endsWith('}')) {
process.stdout.write(line + '\n');
}
}
});
child.on('exit', (code) => {
process.exit(code);
});{
"mcpServers": {
"webpage-mcp": {
"command": "cmd.exe",
"args": [
"/c",
"npx",
"-y",
"-p",
"webpage-mcp@latest",
"webpage-mcp-stdio"
]
},
"nowaikit": {
"command": "node",
"args": [
"C:\\Users\\USERPROFILE_NAMEi\\nowaikit-wrapper.js"
],
"env": {
"SERVICENOW_INSTANCE_URL": "https://dev*****.service-now.com",
"SERVICENOW_BASIC_USERNAME": "mcp_admin",
"SERVICENOW_BASIC_PASSWORD": "THE_PASSWORD",
"WRITE_ENABLED": "true",
"SCRIPTING_ENABLED": "true"
}
}
}
}
Still the nowaikit fails to run.
NOTE - mcp_admin is configured with Identity type = Machine and Internal Integration User - checked.
Please help.
Request - Once again, requesting specific answers that can troubleshoot the issue, no article links, product documentation links, etc.
Regards,
Anish
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Your diagnosis is exactly right, the banner and help text on stdout corrupts the JSON-RPC stream. This was an edge case and it's fixed that at the source in nowaikit@4.7.1: when it's launched by an MCP client (no subcommand, piped stdio) it starts the server directly and prints nothing to stdout. So you can delete the wrapper script, it's no longer needed.
The reason your retries kept failing, including the setup wizard, is npx caching. You've run npx nowaikit many times, so npx has the old banner-printing build cached and keeps reusing it for the bare package name. The fix is to force the new version:
1. Set the package to nowaikit@latest (this is what makes npx fetch 4.7.1):
"nowaikit": {
"command": "npx",
"args": ["-y", "nowaikit@latest"],
"env": {
"SERVICENOW_INSTANCE_URL": "https://devXXXXX.service-now.com",
"SERVICENOW_BASIC_USERNAME": "mcp_admin",
"SERVICENOW_BASIC_PASSWORD": "your-password",
"WRITE_ENABLED": "true",
"SCRIPTING_ENABLED": "true"
}
}
2. Kill the lingering processes as you did before (taskkill /f /im node.exe and taskkill /f /im Claude.exe), then reopen Claude Desktop.
If it still runs an old copy, clear the npx cache once and reopen: delete the folder %LocalAppData%\npm-cache\_npx (or run npm cache clean --force).
I verified this end to end against the published 4.7.1: npx -y nowaikit@latest returns a clean JSON-RPC handshake with no banner, so it connects.
One last thing once it's connected: your note says mcp_admin is a Machine / Internal Integration User. So confirm mcp_admin actually has a password set and that basic auth is allowed for it, I guess with latest release you have to add the user to one of the role to allow basic auth, otherwise you'll get 401s once the server is talking, in which case set a password on that user or switch to OAuth.
Let me know how it goes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @Hardik Benani,
Believe me or not, I had tried applying the same settings as the other MCP Server on the nowaikit as well, it still was not working. but now after your recommendation, tried it and all of a sudden it's working. I will wait on this one and mark the thread closed, if it further stays unaffected. Logically, I think this should be root cause. Thanks a ton! Had been sitting behind this for hours now!
Regards,
Anish
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
Hi @Hardik Benani,
Now I am getting the authentication issue:
You'll need to authenticate to your ServiceNow instance for me to query the incident table — I got an authentication error trying to run the count. Could you connect/re-authenticate the NowAIKit connector, and I'll pull the active incident count right after?
Is there no way other than using the OAuth? Can't we set this basic authentication right? I had deleted the config from Claude client and relaunched it. Also the user has a password set, role is admin. Identity type is Machine and Internal integration user - checked.
Any reasons why the basic auth fails?
By the way I tried validating the basic auth on the terminal, trying to fetch details of the same table which is queried via prompt on the MCP client.
And as you can see it fetched the result as well.
That leaves me surprised, why the basic auth fails only on the MCP client.
Regards,
Anish
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
ServiceNow started enforcing it in the 2026 releases: inbound REST basic auth is now blocked unless the account is explicitly allow-listed, even with an admin role and a valid password. That will give 401.
The specific fix: grant mcp_admin the role snc_basic_auth_api_access. That's the exact role ServiceNow checks to permit basic auth for REST (it's set in the instance property glide.authenticate.basic_auth.allowed_roles). Once that role is on the user, the Table API calls will authenticate.
But if you curl test is working and returns the incident with those credentials, then the credentials are fine and your instance is not blocking basic auth.
Check the below:
1. Env var names. They must be exactly SERVICENOW_BASIC_USERNAME and SERVICENOW_BASIC_PASSWORD. If you used SERVICENOW_USERNAME/SERVICENOW_PASSWORD, basic auth stays empty and you get a 401.
2. Password. Retype it in the config, no spaces before or after. If it has a backslash or a quote, double the backslash (\\) and put a backslash before the quote (\").
3. Fully quit Claude Desktop and reopen. Closing the window is not enough, it keeps the old settings.
If it still fails, open this folder on Windows: press Win+R, paste %APPDATA%\Claude\logs, and open mcp-server-nowaikit.log. Run one prompt, then read the last few lines. It shows the instance it is calling, so you can confirm it matches your curl.
That will pinpoint it. Let me know what the log says.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
Hi @Hardik Benani,
- Tried with the ServiceNow password generated using the Set Password UI Action, updated both files in Roaming and Local folder.
- Then I got help from AI that - When cmd.exe or Node spawns the process, Windows is almost certainly stripping or expanding those characters before nowaikit ever sees them, sending an incomplete password to ServiceNow.
- I then replaced it with an alphanumeric password setting the password visible on the User record using the property - glide.user.show.password.field.
- Again tried the curl request to fetch an incident record, works and then applied that password on both the locations:
C:\Users\USER_PROFILE_NAME\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\ folder and in
C:\Users\USER_PROFILE_NAME\AppData\Roaming\Claude folder. - Explicitly added the role - snc_platform_rest_api_access despite it being available via inheritance. (admin user)
Still didn't work. - Following is the error logs you asked for:
2026-07-28T14:24:47.928Z [nowaikit] [info] Initializing server... { metadata: undefined }
2026-07-28T14:24:48.026Z [nowaikit] [info] Using MCP server command: C:\WINDOWS\System32\cmd.exe with path: {
metadata: {
paths: [
'C:\\Program Files\\nodejs',
'C:\\Python314',
'C:\\Python314\\Scripts\\',
'C:\\Python314\\',
'C:\\WINDOWS\\system32',
'C:\\WINDOWS',
'C:\\WINDOWS\\System32\\Wbem',
'C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\',
'C:\\WINDOWS\\System32\\OpenSSH\\',
'C:\\Program Files\\Amazon\\AWSCLIV2\\',
'C:\\Program Files\\nodejs\\',
'C:\\ProgramData\\chocolatey\\bin',
'C:\\Users\\AnishReghuKumaranNai\\AppData\\Local\\Microsoft\\WindowsApps',
'C:\\Users\\AnishReghuKumaranNai\\AppData\\Local\\Programs\\Microsoft VS Code\\bin',
'C:\\Users\\AnishReghuKumaranNai\\AppData\\Roaming\\npm',
'C:\\Users\\AnishReghuKumaranNai\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin',
[length]: 16
]
}
} %o
2026-07-28T14:24:48.044Z [nowaikit] [info] Server started and connected successfully { metadata: undefined }
2026-07-28T14:24:49.278Z [nowaikit] [info] Message from client: method="initialize" id=0 params { metadata: undefined }
[INFO] NowAIKit server running on stdio [413 tools]
2026-07-28T14:24:53.567Z [nowaikit] [info] Message from server: id=0 result { metadata: undefined }
2026-07-28T14:24:53.568Z [nowaikit] [info] Message from client: method="notifications/initialized" { metadata: undefined }
2026-07-28T14:24:53.581Z [nowaikit] [info] Message from client: method="tools/list" id=1 params { metadata: undefined }
2026-07-28T14:24:53.581Z [nowaikit] [info] Message from client: method="prompts/list" id=2 params { metadata: undefined }
2026-07-28T14:24:53.581Z [nowaikit] [info] Message from client: method="resources/list" id=3 { metadata: undefined }
2026-07-28T14:24:53.593Z [nowaikit] [info] Message from server: id=1 result { metadata: undefined }
2026-07-28T14:24:53.595Z [nowaikit] [info] Message from server: id=2 result { metadata: undefined }
2026-07-28T14:24:53.595Z [nowaikit] [info] Message from server: id=3 result { metadata: undefined }
2026-07-28T14:25:17.451Z [nowaikit] [info] Message from client: method="tools/call" id=4 params { metadata: undefined }
[INFO] Tool called: get_table_record_count
[INFO] Querying ServiceNow table: incident
[DEBUG] Query: active=true
[ERROR] Tool execution error: get_table_record_count ServiceNowError: User is not authenticated
at ServiceNowClient.request (file:///C:/Users/AnishReghuKumaranNai/AppData/Local/npm-cache/_npx/a4f12bcf6fc77cbb/node_modules/nowaikit/dist/servicenow/client.js:249:27)
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async ServiceNowClient.queryRecords (file:///C:/Users/AnishReghuKumaranNai/AppData/Local/npm-cache/_npx/a4f12bcf6fc77cbb/node_modules/nowaikit/dist/servicenow/client.js:327:30)
at async executePerformanceToolCall (file:///C:/Users/AnishReghuKumaranNai/AppData/Local/npm-cache/_npx/a4f12bcf6fc77cbb/node_modules/nowaikit/dist/tools/performance.js:463:30)
at async executeTool (file:///C:/Users/AnishReghuKumaranNai/AppData/Local/npm-cache/_npx/a4f12bcf6fc77cbb/node_modules/nowaikit/dist/tools/index.js:423:24)
at async file:///C:/Users/AnishReghuKumaranNai/AppData/Local/npm-cache/_npx/a4f12bcf6fc77cbb/node_modules/nowaikit/dist/server.js:120:26
at async wrappedHandler (file:///C:/Users/AnishReghuKumaranNai/AppData/Local/npm-cache/_npx/a4f12bcf6fc77cbb/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js:114:32) {
code: 'AUTHENTICATION_FAILED',
details: undefined
}
2026-07-28T14:25:19.929Z [nowaikit] [info] Message from server: id=4 result(1 blocks) { metadata: undefined }Additionally I am able to delete the npm-cache\_npx folder but when I try executing the command
I get the above message.
Regards,
Anish
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
I just learnt that the npm_cache command screenshot is fine. That's a default message.
Also I tried to add the variable: SERVICENOW_AUTH_METHOD": "basic", explicitly,
Still didn't work.
Regards,
Anish