Add tutorial for securing MCP servers with WSO2 Identity Server/ Asgardeo and integrating them with n8n Agentic flows#6078
Add tutorial for securing MCP servers with WSO2 Identity Server/ Asgardeo and integrating them with n8n Agentic flows#6078AkinduH wants to merge 4 commits intowso2:masterfrom
Conversation
…rdeo and integrating them with n8n Agentic flows
📝 WalkthroughWalkthroughA new tutorial for securing MCP servers and integrating them with n8n agentic flows is added across Asgardeo and WSO2 Identity Server documentation (versioned and next). Shared tutorial content is introduced and reused via product-specific wrapper pages that set a Changes
Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🧹 Nitpick comments (5)
en/identity-server/next/docs/tutorials/index.md (1)
6-6: Pre-existing broken MATTR link (unrelated to this PR, but worth fixing while nearby).Line 6 is malformed:
[Verifiable credentials with MATTR]references/tutorials/connect-with-mattr.mdis missing the parentheses and{{base_path}}wrapping used by every other entry. This renders as literal text, not a link. Not introduced by this PR, but since you're editing this file consider fixing it here.🔧 Proposed fix
-- [Verifiable credentials with MATTR]references/tutorials/connect-with-mattr.md +- [Verifiable credentials with MATTR]({{base_path}}/references/tutorials/connect-with-mattr/)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@en/identity-server/next/docs/tutorials/index.md` at line 6, Fix the malformed Markdown link on the line containing "[Verifiable credentials with MATTR]references/tutorials/connect-with-mattr.md" by converting it to the same pattern used by the other entries: wrap the URL path in parentheses and prefix it with {{base_path}} so it reads as a proper Markdown link (i.e., link text in square brackets and the path in parentheses using {{base_path}}/references/tutorials/connect-with-mattr.md); update that single line in index.md accordingly.en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md (3)
107-110: Consider adding a Next steps section and a brief Prerequisites section.The tutorial jumps straight into Step 1 without a Prerequisites section (needs: cloned sample repo, Docker or Node.js for n8n, a Google AI Studio API key, a
{{ product_name }}tenant/console access) and ends on Troubleshooting without a "Next steps" pointer (e.g., to MCP server authorization, agentic AI identity, or related tutorials).As per coding guidelines: "Task-based documentation must follow a logical, goal-oriented structure including: what the reader will achieve, when the task is applicable, prerequisites, sequential steps, outcome confirmation, troubleshooting (if applicable), and next steps" and "end with a Next steps section when appropriate".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md` around lines 107 - 110, Add a brief "Prerequisites" section before Step 1 in the secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md tutorial listing required items (cloned sample repo, Docker or Node.js for n8n, Google AI Studio API key, and a {{ product_name }} tenant/console access) and include versions/links where helpful; then append a concise "Next steps" section after the Troubleshooting block that points readers to follow-up actions such as MCP server authorization, configuring agentic AI identity, and links to related tutorials or advanced guides to continue the workflow.
7-7: Terminology: avoid "leveraging"."By leveraging {{ product_name }} for authentication and authorization..." — prefer a direct verb such as "By using". Also, earlier in the same sentence, "{{ product_name }}" is introduced only via the conditional link text on this line; that reads fine, but note the conditional can simply be replaced by
{{ product_name }}as the link text to reduce Jinja complexity since the URL is the only product-specific piece.📝 Suggested rewrite
-The good news is that secure MCP ecosystems can be built using {% if product_name == "Asgardeo" %}[Asgardeo](https://asgardeo.io/){% else %}[WSO2 Identity Server](https://wso2.com/products/downloads/?product=wso2is){% endif %}. By leveraging {{ product_name }} for authentication and authorization, you can protect MCP servers and ensure that only trusted clients and users are allowed to access specific tools. +You can build secure MCP ecosystems with [{{ product_name }}]({% if product_name == "Asgardeo" %}https://asgardeo.io/{% else %}https://wso2.com/products/downloads/?product=wso2is{% endif %}). By using {{ product_name }} for authentication and authorization, you can protect MCP servers and ensure that only trusted clients and users can access specific tools.As per coding guidelines: "avoid vague verbs such as handle, manage, deal with, perform, and utilize" and "avoid slang, jokes, sarcasm, and marketing language" (the "good news is that…" opener is marketing-y).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md` at line 7, Replace the marketing opener and the vague verb "leveraging" with a direct phrasing (e.g., start the sentence with "Secure MCP ecosystems can be built using {{ product_name }}") and change the Jinja conditional link text to simply use {{ product_name }} while keeping the product-specific URL logic intact; specifically update the sentence that currently uses the Jinja conditional link and the phrase "By leveraging {{ product_name }} for authentication and authorization..." to a concise form using "using {{ product_name }}" and remove the "The good news is that…" prefix.
62-66: Provide concrete setup steps instead of deferring to an external README.Step 3 tells the reader to "Create or update the
.envfile with the required values" and to follow theREADME.mdin an external repository to run the server. This leaves the tutorial non-self-contained: the required env variables (e.g., issuer, audience, client ID) are exactly the integration contract with {{ product_name }} and should be listed here, along with the command used to start the server. External READMEs change independently and can silently break this tutorial.Consider listing:
- The env variables the reader must set and what each configures, with a minimal example.
- The exact command to run the server.
- A confirmation signal (e.g., log line or
http://localhost:3000/mcpreachable).As per coding guidelines: "When documenting configuration, describe what the setting controls, state the default value, state constraints (type, valid range, allowed values), provide a minimal example, and explain when the user should change it" and "Use external links sparingly and only when they add clear value".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md` around lines 62 - 66, Replace the vague "update `.env` and follow README" step with explicit config and run instructions: list the required env vars (issuer, audience, CLIENT_ID, CLIENT_SECRET, PORT) and a one-line description of what each controls and any constraints (e.g., issuer = OIDC issuer URL, audience = JWT audience string, CLIENT_ID/SECRET = OAuth client creds, PORT default 3000), provide a minimal example of the .env contents, and give the exact commands to install and start the server (e.g., install deps and run the start script used by the repo), then state a clear confirmation signal to look for such as the server log "Listening on <PORT>" or that http://localhost:3000/mcp returns a 200 to verify the server is running; update the Step 3 text to include these variables, the example, the commands, and the confirmation step targeting the mcp-server, its start script (npm start / yarn start / node server.js) and the /mcp endpoint.en/asgardeo/mkdocs.yml (1)
611-613: Nav entries added correctly; consider sentence case for the new title.The three nav entries correctly point to existing tutorial pages. The new MCP/n8n entry inherits the title-cased form of the tutorial page; once the title is updated to sentence case in the shared include, update this nav label to match.
📝 Proposed follow-up (after title update)
- - Secure MCP Servers with Asgardeo and Integrate Them with n8n Agentic Flows: tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md + - Secure MCP servers with Asgardeo and integrate them with n8n agentic flows: tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@en/asgardeo/mkdocs.yml` around lines 611 - 613, Update the nav label for "Secure MCP Servers with Asgardeo and Integrate Them with n8n Agentic Flows" to sentence case to match the shared include once that tutorial title is changed; locate the nav entry string "Secure MCP Servers with Asgardeo and Integrate Them with n8n Agentic Flows: tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md" and replace its title-cased label with the sentence-cased label that matches the tutorial include (leave the target path unchanged).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@en/asgardeo/docs/tutorials/index.md`:
- Line 18: Update the link text on the tutorials index entry that currently
reads in title case and points to the slug
"{{base_path}}/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/":
change the visible link text to sentence case (only capitalize the first word
and any proper nouns) so it follows the project's sentence-case guideline for
headings and document titles.
In
`@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md`:
- Line 1: The document title uses title case; change it to sentence case so only
the first word and proper nouns remain capitalized — update the title in
en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md
to "Secure MCP servers with {{ product_name }} and integrate them with n8n
agentic flows" (keep MCP, n8n, and {{ product_name }} capitalized), and mirror
this sentence-case text in the three tutorials/index.md link texts and the
corresponding nav entry in en/asgardeo/mkdocs.yml so all references are
consistent.
- Line 91: The heading "Configure the Google Gemini chat model node" breaks the
ordered step sequence between Step 4 and Step 5; either convert that heading
into a subsection under Step 4 (e.g., change it to a subheading and move its
content under the Step 4 block) or promote it to a formal Step (rename it "Step
5: Configure the Google Gemini chat model node") and renumber the following "Try
the workflow" step and any subsequent steps accordingly so the ordered list
remains contiguous; update any internal references to step numbers if present.
- Around line 53-56: Change the admonition heading "Why disable Public Client?"
to a neutral statement (e.g., "Disabling Public Clients"), remove the double
space in "public clients" to "public clients", and replace the casual sentence
"Hence, let’s configure the application like this." with a neutral, direct
phrasing such as "Configure the application as follows." Target the texts shown
in the note block (heading string, the "public clients" phrase, and the closing
sentence) and update them to use professional, plain language.
- Around line 48-60: In the "Configure the application:" block convert the mixed
bulleted instructions into a clear numbered procedure (use ordered steps) using
4-space indentation rather than tabs; make "Disable **Public Client**." one of
the numbered steps (e.g., step 3) instead of a standalone paragraph and fold
"Save the application." into the final step so it reads as the final action;
ensure sub-items under "Configure the application:" are consistently indented
with 4 spaces and that the image caption remains between the appropriate steps.
- Around line 20-21: The Markdown link in the sentence containing the n8n
community guide has its URL split across a line break making the href malformed;
edit the link so the entire URL is on one line (no newline before the closing
parenthesis) and replace the generic link text "step-by-step guide" with a more
descriptive label such as "n8n community install guide" to follow link-text
guidelines; update the link in the sentence that currently begins "To install
and run n8n locally..." (the inline Markdown link) accordingly.
---
Nitpick comments:
In `@en/asgardeo/mkdocs.yml`:
- Around line 611-613: Update the nav label for "Secure MCP Servers with
Asgardeo and Integrate Them with n8n Agentic Flows" to sentence case to match
the shared include once that tutorial title is changed; locate the nav entry
string "Secure MCP Servers with Asgardeo and Integrate Them with n8n Agentic
Flows:
tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md" and
replace its title-cased label with the sentence-cased label that matches the
tutorial include (leave the target path unchanged).
In `@en/identity-server/next/docs/tutorials/index.md`:
- Line 6: Fix the malformed Markdown link on the line containing "[Verifiable
credentials with MATTR]references/tutorials/connect-with-mattr.md" by converting
it to the same pattern used by the other entries: wrap the URL path in
parentheses and prefix it with {{base_path}} so it reads as a proper Markdown
link (i.e., link text in square brackets and the path in parentheses using
{{base_path}}/references/tutorials/connect-with-mattr.md); update that single
line in index.md accordingly.
In
`@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md`:
- Around line 107-110: Add a brief "Prerequisites" section before Step 1 in the
secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md tutorial listing
required items (cloned sample repo, Docker or Node.js for n8n, Google AI Studio
API key, and a {{ product_name }} tenant/console access) and include
versions/links where helpful; then append a concise "Next steps" section after
the Troubleshooting block that points readers to follow-up actions such as MCP
server authorization, configuring agentic AI identity, and links to related
tutorials or advanced guides to continue the workflow.
- Line 7: Replace the marketing opener and the vague verb "leveraging" with a
direct phrasing (e.g., start the sentence with "Secure MCP ecosystems can be
built using {{ product_name }}") and change the Jinja conditional link text to
simply use {{ product_name }} while keeping the product-specific URL logic
intact; specifically update the sentence that currently uses the Jinja
conditional link and the phrase "By leveraging {{ product_name }} for
authentication and authorization..." to a concise form using "using {{
product_name }}" and remove the "The good news is that…" prefix.
- Around line 62-66: Replace the vague "update `.env` and follow README" step
with explicit config and run instructions: list the required env vars (issuer,
audience, CLIENT_ID, CLIENT_SECRET, PORT) and a one-line description of what
each controls and any constraints (e.g., issuer = OIDC issuer URL, audience =
JWT audience string, CLIENT_ID/SECRET = OAuth client creds, PORT default 3000),
provide a minimal example of the .env contents, and give the exact commands to
install and start the server (e.g., install deps and run the start script used
by the repo), then state a clear confirmation signal to look for such as the
server log "Listening on <PORT>" or that http://localhost:3000/mcp returns a 200
to verify the server is running; update the Step 3 text to include these
variables, the example, the commands, and the confirmation step targeting the
mcp-server, its start script (npm start / yarn start / node server.js) and the
/mcp endpoint.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: f5ccc6c1-dfef-4b5c-bfaf-8c42bb7b6f29
⛔ Files ignored due to path filters (24)
en/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/create-mcp-client-application.pngis excluded by!**/*.pngen/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/import-n8n-workflow.pngis excluded by!**/*.pngen/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-gemini-node-config.pngis excluded by!**/*.pngen/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-mcp-client-node.pngis excluded by!**/*.pngen/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-mcp-client-oauth-settings.pngis excluded by!**/*.pngen/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-workflow.pngis excluded by!**/*.pngen/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/run-workflow.pngis excluded by!**/*.pngen/asgardeo/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/save-mcp-client-application.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/create-mcp-client-application.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/import-n8n-workflow.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-gemini-node-config.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-mcp-client-node.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-mcp-client-oauth-settings.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-workflow.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/run-workflow.pngis excluded by!**/*.pngen/identity-server/7.2.0/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/save-mcp-client-application.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/create-mcp-client-application.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/import-n8n-workflow.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-gemini-node-config.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-mcp-client-node.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-mcp-client-oauth-settings.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/n8n-workflow.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/run-workflow.pngis excluded by!**/*.pngen/identity-server/next/docs/assets/img/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows/save-mcp-client-application.pngis excluded by!**/*.png
📒 Files selected for processing (8)
en/asgardeo/docs/tutorials/index.mden/asgardeo/docs/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.mden/asgardeo/mkdocs.ymlen/identity-server/7.2.0/docs/tutorials/index.mden/identity-server/7.2.0/docs/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.mden/identity-server/next/docs/tutorials/index.mden/identity-server/next/docs/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.mden/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md (1)
11-99: Add explicit prerequisites and next steps sections for task completeness.The tutorial has steps and troubleshooting, but it should explicitly include a Prerequisites section and end with Next steps for consistent task-based structure.
As per coding guidelines: "Task-based documentation must follow a logical, goal-oriented structure including... prerequisites... and next steps."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md` around lines 11 - 99, Add an explicit "Prerequisites" section above "Getting started" that lists required tools and versions (e.g., git, Docker or Node.js, n8n, Google AI Studio API access), repository clone command, and any environment setup steps (refer to the existing "mcp-server" .env and README mentions); then add a "Next steps" section after "Troubleshooting" that directs readers to verify successful runs, link to advanced topics (e.g., securing MCP server, customizing n8n workflows, regenerating credentials), and suggest cleanup or further integration exercises—update the document headings "## Getting started" and the tail after "Troubleshooting" to include these new sections so they fit the task-based flow.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In
`@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md`:
- Line 44: Remove the trailing whitespace at the end of the line containing
"Disable **Public Client** option, as n8n currently only supports confidential
clients and expects the client secret during configuration." (the line flagged
by MD009); edit that line to delete the extra space character at the end, save
the file, and re-run Vale/markdownlint to ensure the MD009 warning is resolved.
- Line 35: Replace the awkward sentence "On {{ product_name }} Console, Go to
**Applications**." with a direct, plain-language instruction like "Go to
**Applications** in the {{ product_name }} Console." — update the sentence text
in the tutorial content so capitalization and punctuation follow plain-language
rules (only the product name and UI item remain capitalized) and keep the bold
markup for "Applications".
- Around line 31-33: Consecutive headings "## Step 2: Set up {{ product_name }}"
and "### Create an MCP client application" have no body text and break markdown
lint; insert a short transitional sentence or brief paragraph under the H2 (Step
2) that introduces the goals of the step (e.g., "In this step we'll configure
your environment and create an MCP client application to authenticate with the
service.") or move the H3 content up so the H2 contains at least one sentence;
update the content around the headings "Step 2: Set up {{ product_name }}" and
"Create an MCP client application" to ensure the H2 has body text before the H3
to satisfy Vale/markdown-lint.
---
Nitpick comments:
In
`@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md`:
- Around line 11-99: Add an explicit "Prerequisites" section above "Getting
started" that lists required tools and versions (e.g., git, Docker or Node.js,
n8n, Google AI Studio API access), repository clone command, and any environment
setup steps (refer to the existing "mcp-server" .env and README mentions); then
add a "Next steps" section after "Troubleshooting" that directs readers to
verify successful runs, link to advanced topics (e.g., securing MCP server,
customizing n8n workflows, regenerating credentials), and suggest cleanup or
further integration exercises—update the document headings "## Getting started"
and the tail after "Troubleshooting" to include these new sections so they fit
the task-based flow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: 216ad391-a924-482e-9fba-9d9ea6de452a
📒 Files selected for processing (5)
en/asgardeo/docs/tutorials/index.mden/asgardeo/mkdocs.ymlen/identity-server/7.2.0/docs/tutorials/index.mden/identity-server/next/docs/tutorials/index.mden/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md
✅ Files skipped from review due to trivial changes (3)
- en/asgardeo/docs/tutorials/index.md
- en/identity-server/7.2.0/docs/tutorials/index.md
- en/asgardeo/mkdocs.yml
🚧 Files skipped from review as they are similar to previous changes (1)
- en/identity-server/next/docs/tutorials/index.md
| ## Step 2: Set up {{ product_name }} | ||
|
|
||
| ### Create an MCP client application |
There was a problem hiding this comment.
Fix consecutive headings to unblock markdown lint.
## Step 2: Set up {{ product_name }} is followed immediately by ### Create an MCP client application with no body text, which fails the lint rule and currently breaks CI.
🔧 Proposed fix
## Step 2: Set up {{ product_name }}
-### Create an MCP client application
+Create an MCP client application:
1. On {{ product_name }} Console, Go to **Applications**.As per coding guidelines: "Run Vale locally and resolve all warnings before finalizing documentation" and "Task-based documentation must follow a logical, goal-oriented structure."
🧰 Tools
🪛 GitHub Actions: Markdown Lint
[error] 33-33: markdownlint-cli2 (markdownlint) failed: no-consecutive-headings Disallow consecutive headings [Consecutive headings are not allowed.] [Context: "### Create an MCP client application"]
🪛 GitHub Check: lint
[failure] 33-33: Disallow consecutive headings
en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md:33 no-consecutive-headings Disallow consecutive headings [Consecutive headings are not allowed.] [Context: "### Create an MCP client application"]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md`
around lines 31 - 33, Consecutive headings "## Step 2: Set up {{ product_name
}}" and "### Create an MCP client application" have no body text and break
markdown lint; insert a short transitional sentence or brief paragraph under the
H2 (Step 2) that introduces the goals of the step (e.g., "In this step we'll
configure your environment and create an MCP client application to authenticate
with the service.") or move the H3 content up so the H2 contains at least one
sentence; update the content around the headings "Step 2: Set up {{ product_name
}}" and "Create an MCP client application" to ensure the H2 has body text before
the H3 to satisfy Vale/markdown-lint.
|
|
||
| ### Create an MCP client application | ||
|
|
||
| 1. On {{ product_name }} Console, Go to **Applications**. |
There was a problem hiding this comment.
Tighten instruction wording for clarity and grammar.
The current text has awkward capitalization and punctuation (On ... Console, Go to ...). Use direct phrasing.
✍️ Proposed fix
-1. On {{ product_name }} Console, Go to **Applications**.
+1. In the {{ product_name }} Console, go to **Applications**.As per coding guidelines: "Use plain language and short sentences" and "Keep a professional, friendly, neutral tone."
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md`
at line 35, Replace the awkward sentence "On {{ product_name }} Console, Go to
**Applications**." with a direct, plain-language instruction like "Go to
**Applications** in the {{ product_name }} Console." — update the sentence text
in the tutorial content so capitalization and punctuation follow plain-language
rules (only the product name and UI item remain capitalized) and keep the bold
markup for "Applications".
| Configure the application with the following values: | ||
| - **Application Name**: `n8n-example` | ||
| - **Redirect URL**: `http://localhost:5678/rest/oauth2-credential/callback` | ||
| - Disable **Public Client** option, as n8n currently only supports confidential clients and expects the client secret during configuration. |
There was a problem hiding this comment.
Remove trailing whitespace at Line 44.
There is one trailing space at the end of the line, and markdownlint flags it (MD009).
🧹 Proposed fix
- - Disable **Public Client** option, as n8n currently only supports confidential clients and expects the client secret during configuration.
+ - Disable **Public Client** option, as n8n currently only supports confidential clients and expects the client secret during configuration.As per coding guidelines: "Run Vale locally and resolve all warnings before finalizing documentation."
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - Disable **Public Client** option, as n8n currently only supports confidential clients and expects the client secret during configuration. | |
| - Disable **Public Client** option, as n8n currently only supports confidential clients and expects the client secret during configuration. |
🧰 Tools
🪛 GitHub Check: lint
[failure] 44-44: Trailing spaces
en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md:44:141 MD009/no-trailing-spaces Trailing spaces [Expected: 0 or 2; Actual: 1] https://github.com/DavidAnson/markdownlint/blob/v0.38.0/doc/md009.md
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In
`@en/includes/tutorials/secure-mcp-servers-and-integrate-them-with-n8n-agentic-flows.md`
at line 44, Remove the trailing whitespace at the end of the line containing
"Disable **Public Client** option, as n8n currently only supports confidential
clients and expects the client secret during configuration." (the line flagged
by MD009); edit that line to delete the extra space character at the end, save
the file, and re-run Vale/markdownlint to ensure the MD009 warning is resolved.
This pull request adds a new end-to-end tutorial for securing MCP servers and integrating them with n8n agentic flows, making it available for both Asgardeo and WSO2 Identity Server documentation. The changes include the creation and inclusion of a reusable tutorial file, updates to the navigation menus, and the addition of links on relevant tutorial index pages.
Related PRs
Test environment
Security checks